sys.time_zone_info的current_utc_offset(以分钟为单位)

时间:2019-11-26 10:32:45

标签: sql-server database tsql

在MS-SQL服务器的sys.time_zone_info中,current_utc_offset以小时格式(HH:MM)存储。 有没有可能将时间转换为分钟格式的方法? 实际结果

name                     |  current_utc_offset
---------------------------------------------------------
Syria Standard Time      |       +02:00
----------------------------------------------------------

Expected Result
name                     |  current_utc_offset        |  Minute
----------------------------------------------------------------
Syria Standard Time      |       +02:00               |     +120
----------------------------------------------------------------

1 个答案:

答案 0 :(得分:2)

最简单的方法(避免创造性的字符串操作)是(ab)使用SWITCHOFFSET

SELECT 
    name, 
    current_utc_offset, 
    DATEPART(TZOFFSET, SWITCHOFFSET('', current_utc_offset)) AS current_utc_offset_minutes
FROM sys.time_zone_info

如果在所有情况下您确实必须带有该标志,并且您无法处理该客户端(我认为是更好的选择),那么FORMAT是您的朋友:

SELECT 
    name, 
    current_utc_offset, 
    FORMAT(DATEPART(TZOFFSET, SWITCHOFFSET('', current_utc_offset)), '+0;-0') AS current_utc_offset_minutes
FROM sys.time_zone_info

还有其他方法(例如,可以在时区名称上使​​用AT TIME ZONE)。