2016-10-18 105 views
1

對於我AgingCalendar場,我有3個條件,使用CASE WHEN:AgeCalendar日期時間字段問題

CASE WHEN A.[END_DTTM] > A.[STRT_DTTM] THEN C2.[DY_OF_CAL_NUM] - C1.[DY_OF_CAL_NUM] 
     WHEN A.[END_DTTM] IS NULL and A.[STRT_DTTM] IS NOT NULL THEN C3.[DY_OF_CAL_NUM] - C1.[DY_OF_CAL_NUM] 
     WHEN A.[END_DTTM] = A.[STRT_DTTM] THEN 1 
    END AS AgeCalendar 

對於我的第三個條件,我想基本上說,當結束日期時間=開始日期時間,年齡在日曆日期應設置爲1個日曆日。

但是,在我引入的一些記錄中,開始日期等於結束日期,但與每個日期時間相關的時間不同。發生這種情況時,這些記錄在AgeCalendar字段中接收到一個NULL(例如,我可以有6/6/2014 0:00:00 = 6/6/2014 0:00:00,這會給我1。 ..但如果我有6/6/2014 0:00:00 = 6/6/2014 0:03:59(或類似的東西)...它會給我一個NULL值,因爲它不匹配。 如何更新上面的代碼,這樣我基本上是說,當結束日期=開始日期,然後1 ...不管有沒有匹配時代?

回答

1

CASTCONVERT他們作爲日期忽略的時間。

WHEN CONVERT(DATE, A.[END_DTTM]) = CONVERT(DATE, A.[STRT_DTTM]) THEN 1

WHEN CAST(A.[END_DTTM] AS DATE) = CAST(A.[STRT_DTTM] AS DATE) THEN 1

+0

我知道它一定很簡單,但畫的是空白。謝謝@scsimon。 – smul86

+0

不用擔心@ smul86 – scsimon