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

Làm cách nào để truy vấn tất cả các ngày lớn hơn một ngày nhất định trong SQL Server?

select *  
from dbo.March2010 A 
where A.Date >= Convert(datetime, '2010-04-01' )

Trong truy vấn của bạn, 2010-4-01 được coi như một biểu thức toán học, vì vậy về bản chất, nó đọc

select *  
from dbo.March2010 A 
where A.Date >= 2005; 

(2010 minus 4 minus 1 is 2005 Chuyển đổi nó thành một datetime thích hợp và sử dụng các dấu ngoặc kép sẽ khắc phục được vấn đề này.)

Về mặt kỹ thuật, trình phân tích cú pháp có thể cho phép bạn sử dụng

select *  
from dbo.March2010 A 
where A.Date >= '2010-04-01'

nó sẽ thực hiện chuyển đổi cho bạn, nhưng theo ý kiến ​​của tôi thì nó khó đọc hơn là chuyển đổi rõ ràng thành DateTime cho lập trình viên bảo trì sẽ đến sau bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn / Chèn phiên bản Nâng cấp:có mẫu thiết kế cho tính đồng thời cao không?

  2. Tạo giá trị int ngẫu nhiên từ 3 đến 6

  3. Chuỗi kết nối cho localdb cho phiên bản 11 là gì

  4. Làm cách nào để tạo danh sách được phân tách bằng dấu phẩy bằng truy vấn SQL?

  5. Tôi có thể phân cách bằng dấu phẩy nhiều hàng thành một cột không?