sql >> Base de Datos >  >> RDS >> Sqlserver

La declaración de fecha y hora BETWEEN no funciona en SQL Server

¿Tienes horas asociadas a tus fechas? ENTRE es inclusivo, pero cuando convierte 2013-10-18 en una fecha, se convierte en 2013-10-18 00:00:000.00. Cualquier cosa que se registre después del primer segundo del día 18 no se mostrará usando BETWEEN, a menos que incluya un valor de tiempo.

Prueba:

SELECT 
* 
FROM LOGS 
WHERE CHECK_IN BETWEEN 
    CONVERT(datetime,'2013-10-17') 
    AND CONVERT(datetime,'2013-10-18 23:59:59:998')

si quieres buscar todo el día 18. Establecí milisegundos en 998 porque SQL Server estaba extrayendo 2013-10-19 00:00:00:0000 en la consulta.

Los campos SQL DATETIME tienen milisegundos. Así que agregué 999 al campo.