sql >> Base de Datos >  >> RDS >> Sqlserver

SQL entre no inclusivo

Es es inclusivo. Está comparando fechas y horas con fechas. La segunda fecha se interpreta como medianoche cuando comienza el día .

Una forma de arreglar esto es:

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

Otra forma de solucionarlo es con comparaciones binarias explícitas

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

Aaron Bertrand tiene una larga entrada de blog sobre fechas (aquí), donde analiza este y otros temas relacionados con las fechas.