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

MS SQL so sánh ngày?

SELECT CASE WHEN CAST(date1 AS DATE) <= CAST(date2 AS DATE) ...

Nên làm những gì bạn cần.

Trường hợp thử nghiệm

WITH dates(date1, date2, date3, date4)
     AS (SELECT CAST('20101231 15:13:48.593' AS DATETIME),
                CAST('20101231 00:00:00.000' AS DATETIME),
                CAST('20101231 15:13:48.593' AS DATETIME),
                CAST('20101231 00:00:00.000' AS DATETIME))
SELECT CASE
         WHEN CAST(date1 AS DATE) <= CAST(date2 AS DATE) THEN 'Y'
         ELSE 'N'
       END AS COMPARISON_WITH_CAST,
       CASE
         WHEN date3 <= date4 THEN 'Y'
         ELSE 'N'
       END AS COMPARISON_WITHOUT_CAST
FROM   dates 

Trả lại

COMPARISON_WITH_CAST   |  COMPARISON_WITHOUT_CAST
Y                         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. DateTime từ .NET sang smalldatetime trong SQL - làm thế nào để thực hiện truy vấn?

  2. Có cần thiết phải đóng gói một câu lệnh hợp nhất duy nhất (với chèn, xóa và cập nhật) trong một giao dịch không?

  3. Mẹo nhanh để sửa chữa và khôi phục cơ sở dữ liệu SQL mà không cần sao lưu

  4. NOLOCK có phải là mặc định cho câu lệnh SELECT trong SQL Server 2005 không?

  5. Làm cách nào để CHỌN nhiều cột trong CASE WHEN trên SQL Server?