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

Truy vấn so sánh ngày tháng trong SQL

Thay vì '2013-04-12' có ý nghĩa phụ thuộc vào văn hóa địa phương, hãy sử dụng '20130412' được công nhận là định dạng bất biến của văn hóa.

Nếu bạn muốn so sánh với ngày 4 tháng 12, bạn nên viết '20131204'. Nếu bạn muốn so sánh với ngày 12 tháng 4, bạn nên viết '20130412'.

Bài viết Viết câu lệnh SQL giao dịch quốc tế từ tài liệu của SQL Server giải thích cách viết câu lệnh bất biến văn hóa:

Các ứng dụng sử dụng các API khác hoặc tập lệnh Transact-SQL, các thủ tục được lưu trữ và trình kích hoạt, nên sử dụng các chuỗi số chưa được phân tách. Ví dụ:yyyymmdd là 19980924.

CHỈNH SỬA

Vì bạn đang sử dụng ADO, tùy chọn tốt nhất là tham số hóa truy vấn và chuyển giá trị ngày tháng dưới dạng tham số ngày tháng. Bằng cách này, bạn hoàn toàn tránh được vấn đề định dạng và cũng có được những lợi ích về hiệu suất của các truy vấn được tham số hóa.

CẬP NHẬT

Để sử dụng định dạng ISO 8601 theo nghĩa đen, tất cả các phần tử phải được chỉ định. Trích dẫn từ phần ISO 8601 trong tài liệu của datetime

Để sử dụng định dạng ISO 8601, bạn phải chỉ định từng phần tử trong định dạng. Điều này cũng bao gồm T, dấu hai chấm (:) và dấu chấm (.) Được hiển thị ở định dạng.

... phần của thành phần thứ hai là tùy chọn. Thành phần thời gian được chỉ định ở định dạng 24 giờ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về POWER () trong SQL Server

  2. Ngày / Dấu thời gian để ghi khi một bản ghi được thêm vào bảng?

  3. 3 cách trả về danh sách công việc tác nhân máy chủ SQL (T-SQL)

  4. Cách kích hoạt ràng buộc khóa ngoại trong SQL Server (Ví dụ T-SQL)

  5. Ràng buộc mặc định trong SQL Server là gì - Hướng dẫn sử dụng SQL Server / TSQL Phần 90