De esto no se que puede estar mal, segun yo esta ok...brrr
declare @fecha_hora varchar(20) ,
@xfecha varchar(20)
@Fecha_Hora= '20/05/2013 00:00' --fecha inicio
@xFecha='20/05/2013 23:59' --fecha termino
y el campo FECHA_HORA es un varchar que me entrega = '20-may-2013 23:40:11 CLT' (varchar de 50)
Código SQL
[-]and ((@Fecha_Hora = '') OR (@Fecha_Hora <> '' And convert(datetime,(substring(a.fecha_hora,0,18)),103) Between convert(datetime,(substring(@fecha_hora,0,18)),103) And convert(datetime,(substring(@xFecha,0,18)),103)))
Cita:
Empezado por ecfisa
Hola Cristhor1982.
Según veo ahora, sólo se evalúan los primeros 23 caracteres del campo ("23-may-2013 11:49:11 CLT"). Y si los últimos tres caracteres podrían variar, los podrías pasar mediante un parámetro, por ejemplo:
Código SQL [-]
SELECT *
FROM TU_TABLA
WHERE CAST(SUBSTRING(FECHA_HORA, 0, 19) AS DATETIME) BETWEEN :DESDE AND :HASTA
AND SUBSTRING(FECHA_HORA, 22, 3) = :PEXT
Pero sinceramente todavía no estoy seguro de haber entendido que es lo que buscas hacer...
Saludos.
|