Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Instrução Datetime BETWEEN não funciona no SQL Server


Você tem horários associados às suas datas? BETWEEN é inclusivo, mas quando você converte 2013-10-18 em uma data, torna-se 2013-10-18 00:00:000.00. Qualquer coisa registrada após o primeiro segundo do dia 18 não será mostrada usando BETWEEN, a menos que você inclua um valor de tempo.

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

se você quiser pesquisar todo o dia 18. Defini milissegundos para 998 porque o SQL Server estava puxando 2013-10-19 00:00:00:0000 na consulta.

Os campos SQL DATETIME têm milissegundos. Então eu adicionei 999 ao campo.