Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL giữa không bao gồm

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt SQL Server trên Ubuntu 18.04

  2. Có sự khác biệt giữa SQL Server Express (2012) và LocalDB không?

  3. Khắc phục “Ít nhất một trong các đối số đối với COALESCE phải là một biểu thức không phải là hằng số NULL” trong SQL Server

  4. Sử dụng giao dịch ROLLBACK trong SQL Server

  5. Lỗi truy vấn với tên cột không rõ ràng trong SQL