sql >> Databasteknik >  >> RDS >> Sqlserver

Datetime BETWEEN-satsen fungerar inte i SQL Server

Har du tider kopplade till dina dejter? BETWEEN är inklusive, men när du konverterar 2013-10-18 till ett datum blir det 2013-10-18 00:00:000.00. Allt som loggas efter den första sekunden av den 18:e kommer inte att visas med BETWEEN, om du inte inkluderar ett tidsvärde.

Försök:

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

om du vill söka hela dagen den 18:e. Jag satte milisekunder till 998 eftersom SQL Server drog in 2013-10-19 00:00:00:0000 i frågan.

SQL DATETIME-fält har millisekunder. Så jag lade till 999 till fältet.



  1. Undvik exklusiva åtkomstlås på refererade tabeller när du DROPpar i PostgreSQL

  2. T-SQL tisdag #33:Trickbilder:Schema Switch-A-Roo

  3. mysql-kategorier och underkategorier

  4. Optimera en haversineformel SQL-anrop i PHP