2012-05-09 17 views
5

estoy consiguiendo error de conversión cuando se ejecuta el sql continuación en proceso de almacenamiento porque de alguna razón no puedo echar en el varcharError de conversión al convertir fecha y hora de la cadena de caracteres en el proceso de almacenamiento

Declare @sql varchar(100) 
Declare @ddtime datetime 

set @ddtime = '2012-02-03 22:14:50.057' 

set @sql = 'select * from table1 where tdate='[email protected] 

exec(@sql) 
+0

Usted está tratando de seleccionar un número de registros en una cadena? Eso es lo que hace tu código. – Lazarus

Respuesta

10

es necesario convertir la @ddtime a un varchar ya se está incluyendo en una cadena:

Declare @sql varchar(100) 
Declare @ddtime datetime 

set @ddtime = '2012-02-03 22:14:50.057' 

set @sql = 'select * from table1 where tdate= '''+ convert(nvarchar(25), @ddtime, 121) + '''' 

exec(@sql) 

o simplemente tiene @ddtime como varchar en lugar de un datetime.

Declare @ddtime varchar(25) 

El convert(varchar(25), @ddtime, 121) deja su fecha en el mismo formato que se configura inicialmente como.

How to format datetime & date in Sql Server

+0

falta '' 'en el signo igual ..... –

+0

También estoy tratando de ejecutar el sql que no he mencionado en la pregunta. tan solo lo actualicé –

+0

@RoyiNamir estás en lo correcto lo arreglé. Gracias – Taryn

1

Cambiar el tipo de dato variable para @ddtime varchar. Está intentando concatenar varchar y datetime.

+0

También estoy tratando de ejecutar el sql que no he mencionado en la pregunta. así que simplemente lo actualicé –

0

su ddtime es de fecha y hora

no puedes concat a cadena.

cambio

set @sql = 'select * from table1 where tdate='''+cast (@ddtime as nvarchar(100))+'''' 

o

cambio a

Declare @ddtime nvarchar(100) 
+0

También estoy tratando de ejecutar el sql que no he mencionado en la pregunta. tan solo lo actualicé –

+0

jsut cambio a exec en lugar de imprimir –

Cuestiones relacionadas