sql >> Databasteknik >  >> RDS >> Sqlserver

MS SQL jämföra datum?

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

Bör göra vad du behöver.

Testfall

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 

Retur

COMPARISON_WITH_CAST   |  COMPARISON_WITHOUT_CAST
Y                         N


  1. Bitvis exklusiv ELLER i Oracle

  2. BESTÄLL AV med inre fråga, vilket ger ORA-00907 saknad höger parentes

  3. Extrahera xml-data med Oracle-fråga

  4. Hur kopierar jag data från en tabell till en annan i postgres med kopieringskommandot