【发布时间】:2017-01-04 08:24:00
【问题描述】:
我有一个带有 DateTime 列的表,该列包含一个 UTC 中的 DateTime,在本地时间始终是时间 00:00:00.000,这是因为我只关心日期部分,而不是时间,但我需要存储UTC 日期。在我的本地时间中,UTC 偏移量是 -6 小时,因此,我所有的日期都以等于 6 的时间存储,例如 '2017-01-03 06:00:00.000' 。问题是当我尝试比较这个时:
SELECT (CASE WHEN (CONVERT(DATE, '2017-01-03 06:00:00.000') = CONVERT(DATE, GETUTCDATE())) THEN 1 ELSE 0 END) AS [IsEqual]
如果GETUTCDATE的结果是另一天但小时小于6,例如'2017-01-04 02:00:00.000',这个日期在当地时间仍然属于1月3日,但是上面的比较返回 false 因为正在检查 2017-01-03 = 2017-01-04。
如何查找这两个 UTC 日期是否在同一日历日?
【问题讨论】:
标签: sql sql-server