sql >> Database >  >> RDS >> Sqlserver

SQL tussen niet inclusief

Het is inclusief. Je vergelijkt datetimes met dates. De tweede datum wordt geïnterpreteerd als middernacht wanneer de dag begint .

Een manier om dit op te lossen is:

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

Een andere manier om het op te lossen is met expliciete binaire vergelijkingen

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

Aaron Bertrand heeft een lang blogbericht over data (hier), waar hij deze en andere datumkwesties bespreekt.



  1. Hoe Replace() werkt in SQLite

  2. Hoe maak je een logbestand aan in Oracle met PL/SQL?

  3. Een kolom toevoegen aan een bestaande tabel in SQLite

  4. [UPDATE 2] Kritiek:Office Update verbreekt toegang - Query is beschadigd