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

SQL tra non inclusivo

è compreso. Stai confrontando datetime con date. La seconda data viene interpretata come mezzanotte quando inizia il giorno .

Un modo per risolvere questo problema è:

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

Un altro modo per risolverlo è con confronti binari espliciti

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

Aaron Bertrand ha un lungo post sul blog sulle date (qui), in cui discute di questo e di altri problemi relativi alle date.