SORU
25 Ocak 2011, Salı


MS SQL tarih karşılaştırma?

2 tarih (datetimes) var:

tarih1 = 2010-12-31 15:13:48.593
tarih2 = 2010-12-31 00:00:00.000

Aynı gün, farklı zamanlarda. Tarih1 ve tarih2 kullanarak <= karşılaştırarak tarih1 zaman nedeniyle çalışmıyor. Tarih1 <= tarih2 çok yanlış, ama doğru olmalı. Sadece bu yıl bakarak, aynı ay ve gün karşılaştırabilir miyim? SQL Server 2008.

Teşekkür ederim :)

CEVAP
25 Ocak 2011, Salı


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

Ne ihtiyacınız var.

Test Durumda

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 

Verir

COMPARISON_WITH_CAST   |  COMPARISON_WITHOUT_CAST
Y                         N

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009