sql >> Database teknologi >  >> RDS >> Sqlserver

Datetime BETWEEN-sætningen virker ikke i SQL Server

Har du tidspunkter forbundet med dine dates? BETWEEN er inklusive, men når du konverterer 2013-10-18 til en dato, bliver det 2013-10-18 00:00:000.00. Alt, der er logget efter det første sekund af den 18., vises ikke med BETWEEN, medmindre du inkluderer en tidsværdi.

Prøv:

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

hvis du vil søge hele dagen den 18. Jeg indstillede millisekunder til 998, fordi SQL Server trak ind 2013-10-19 00:00:00:0000 i forespørgslen.

SQL DATETIME-felter har millisekunder. Så jeg tilføjede 999 til feltet.



  1. strip_tags virker ikke

  2. Kørsel af en MariaDB Galera Cluster uden containerorkestreringsværktøjer:Første del

  3. Laravel Migration tilføje felt efter data er i tabel?

  4. MySQL kolonnenavne og aliaser