SQL Dinamicamente ( En Run-Time )

02/05/2004 - 17:19 por Mario Reiley | Informe spam
Al tratar de crear dinamicamente el siguiente SQL, el servidor me arroja
este error:

Error de sintaxis al convertir una cadena de caracteres a datetime

este es el SQL:

set @sql = N'SELECT htDetalleNormal.Lun, htDetalleNormal.Mar,
htDetalleNormal.Mie, htDetalleNormal.Jue, htDetalleNormal.Vie,
htDetalleNormal.HojaId, ' +
'htDetalleNormal.FechaMie AS Desde, htDetalleNormal.FechaMie AS Hasta
' +
'FROM personal FULL OUTER JOIN ' +
'Clasificacion ON personal.ClasificacionId Clasificacion.ClasificacionId FULL OUTER JOIN ' +
'Hojatiempo ON personal.CedulaId = Hojatiempo.CedulaId FULL
OUTER JOIN ' +
'htDetalleNormal ON Hojatiempo.HojaId = htDetalleNormal.HojaId '
+
'WHERE ' + (COL_NAME(OBJECT_ID('dbo.HtDetalleNormal'),@Desde) + ' >= ' +
CONVERT(DATETIME,@FDesde, 102)) + 'AND ' +
(COL_NAME(OBJECT_ID('dbo.HtDetalleNormal'),@Hasta) + ' <= ' +
CONVERT(DATETIME,@FHasta, 102)) + ' for browse'

Gracias de antemano.

Mario

Preguntas similare

Leer las respuestas

#6 manuel garcía
03/05/2004 - 15:50 | Informe spam
Nos podrías decir que te llega en @FHasta y @FDesde

"Mario Reiley" escribió en el mensaje
news:
Mostrar la cita
Hasta
Mostrar la cita
'
Mostrar la cita
+
Mostrar la cita
#7 Mario Reiley
03/05/2004 - 22:29 | Informe spam
Hola Grupo , primero que todo mis disculpas por haber sido tan poco
explicito.

Realmente el problema es que : cuando el motor del SQL o la libreria ADO que
analiza mi SQL
encuentra que COL_NAME retorna un sysname y le aplica la aritmetica
relacional >= al una fecha
se genera el error de tipos.

Bueno realmente no se como podria armar esta consulta .

Cuanquier asesoria sera bienvenida.

Gracias
Mario

"Mario Reiley" wrote in message
news:
Mostrar la cita
Hasta
Mostrar la cita
'
Mostrar la cita
+
Mostrar la cita
#8 manuel garcía
04/05/2004 - 10:22 | Informe spam
Mario, el problema que tienes es que estás concatenando un string con un
datetime y eso es lo que produce el error. Si en fdesde te llega como
AAAA.MM.DD no hace falta que lo coviertas a datetime, com >= 'AAAA.MM.DD' te
funciona. Al utilizar una variable, y puesto que te hace falta las ' para <'AAAA.MM.DD debes poner:

'WHERE ' + COL_NAME(OBJECT_ID('dbo.HtDetalleNormal'),@Desde) + ' >= '+'''' +
@FDesde + '''' + 'AND ' +


"Mario Reiley" escribió en el mensaje
news:e8K%
Mostrar la cita
que
Mostrar la cita
htDetalleNormal.Vie,
Mostrar la cita
Ads by Google
Search Busqueda sugerida