Nó là bao gồm. Bạn đang so sánh ngày giờ với ngày tháng. Ngày thứ hai được hiểu là nửa đêm khi ngày mới bắt đầu .
Một cách để khắc phục điều này là:
SELECT *
FROM Cases
WHERE cast(created_at as date) BETWEEN '2013-05-01' AND '2013-05-01'
Một cách khác để khắc phục là so sánh nhị phân rõ ràng
SELECT *
FROM Cases
WHERE created_at >= '2013-05-01' AND created_at < '2013-05-02'
Aaron Bertrand có một bài viết dài trên blog về ngày tháng (tại đây), nơi anh ấy thảo luận về vấn đề này và các vấn đề khác về ngày tháng.