在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
----------------------------------------------------------------
答案 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
)。