Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

MS SQL сравняване на дати?

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

Трябва да направите това, от което се нуждаете.

Тестов случай

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 

Връщане

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. Избор от таблица, където името се предава като променлива

  2. Регистрационният файл на SQL Server 2008 няма да бъде съкратен

  3. Проверете/променете нивото на съвместимост на база данни в SQL Server (SSMS)

  4. Грешка - препълване на SqlDateTime. Трябва да е между 1/1/1753 00:00:00 AM и 12/31/9999 23:59:59 PM

  5. Как да замените нулеви стойности с неизвестно в изявление за избор в SQL Server - SQL Server / TSQL урок, част 111