AgeCalendar 日期时间字段问题
AgeCalendar Datetime Field Issue
对于我的 AgingCalendar 字段,我有 3 个使用 CASE WHEN 的条件:
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...不管没有匹配的时间?
CAST
或CONVERT
将它们作为日期忽略时间。
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
对于我的 AgingCalendar 字段,我有 3 个使用 CASE WHEN 的条件:
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...不管没有匹配的时间?
CAST
或CONVERT
将它们作为日期忽略时间。
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