随着夏令时的变化,我如何获得正确的时区偏移量来转换时区。
美国东部时间和美国东部时间的前时差是9:30小时,但在夏令时(DST),它变成了10:30小时。
那么我如何获得正确的更新时区偏移
有许多不同的方法可以实现这一点,您可以使用AT TIME ZONE函数来转换日期时间值。下面的示例使用CTE (CTEDateTimes)作为UTC日期时间(UTDDateTime)值列表的输入,用于从午夜到04:00 22-03-13之间的日期时间。
下面的语句将返回UTC日期时间和转换后的东部标准时间(US)。
SELECT
UTDDateTime
,CONVERT(DATETIME2(0), UTDDateTime, 126) AT TIME ZONE 'Eastern Standard Time' EST
FROM CTEDateTimes
UTC时间02:00左右的输出如下:
UTCDateTime <---> EST
----------------------- ----- ---------------------------
2022-03-13 01:57:00.000 <---> 2022-03-13 01:57:00 -05:00
2022-03-13 01:58:00.000 <---> 2022-03-13 01:58:00 -05:00
2022-03-13 01:59:00.000 <---> 2022-03-13 01:59:00 -05:00
2022-03-13 02:00:00.000 <---> 2022-03-13 03:00:00 -04:00
2022-03-13 02:01:00.000 <---> 2022-03-13 03:01:00 -04:00
2022-03-13 02:02:00.000 <---> 2022-03-13 03:02:00 -04:00
通过这种方式,您可以转换到任何时区,然后找到偏移量。
希望这对你有帮助。