sql >> Databasteknik >  >> RDS >> Sqlserver

SQL mellan inte inkluderande

Det är inklusive. Du jämför datum och datum med datum. Det andra datumet tolkas som midnatt när dagen börjar .

Ett sätt att fixa detta är:

SELECT *
FROM Cases
WHERE cast(created_at as date) BETWEEN '2013-05-01' AND '2013-05-01'

Ett annat sätt att fixa det är med explicita binära jämförelser

SELECT *
FROM Cases
WHERE created_at >= '2013-05-01' AND created_at < '2013-05-02'

Aaron Bertrand har ett långt blogginlägg om datum (här), där han diskuterar detta och andra datumfrågor.



  1. Hur LocalTime() fungerar i PostgreSQL

  2. JSON_VALUE() Exempel i SQL Server (T-SQL)

  3. Java Oracle localhost anslutningsfel (ORA-12505)

  4. Bättre tekniker för att trimma inledande nollor i SQL Server?