我有一个包含用户、UTC 时间偏移以及他们是否遵守夏令时的表。是否有内置方法可以获取正确的用户时间?
这并非在所有情况下都有效,但对于美国 DST 定义为 3 月第 2 个星期日到 11 月第 1 个星期日之间的用户来说,这是一个快速解决方案。
DECLARE @Date datetime2 = '2018-11-04 02:01:00'
SELECT
CASE
WHEN @Date between
DATETIMEFROMPARTS(YEAR(@Date), 3, (8 - DATEPART(WEEKDAY, DATEFROMPARTS(YEAR(@Date), 3, 1))) + 8, 02, 00, 00, 00)
and
DATETIMEFROMPARTS(YEAR(@Date), 11, (8 - DATEPART(WEEKDAY, DATEFROMPARTS(YEAR(@Date), 11, 1))) + 1, 02, 00, 00, 00)
THEN 1
ELSE 0
END --Is it dst?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)