我目前正在使用:
SELECT DATEPART(TZ, SYSDATETIMEOFFSET())
但是,它会返回以分钟为单位的偏移量。我想保留“-05:00”而不是“-300”的格式
谢谢你。
如果要提取 datetimeoffset 变量末尾的确切字符串“-05:00”,可以使用 SQL Server 字符串操作。 我认为使用内置的 SQL DateTime 函数不可能做到这一点。 您可以使用 CAST 函数,我相信它默认为 ISO 8601 格式:
declare @timeStr nvarchar(50) = CAST(SYSDATETIMEOFFSET() as nvarchar(50))
select right(@timeStr, 6)
如果想更明确,可以使用格式类型为126的CONVERT函数,显式告诉SQL Server使用ISO 8601:
declare @timeStr nvarchar(50) = CONVERT(nvarchar(50), SYSDATETIMEOFFSET(), 126)
select right(@timeStr, 6)
这两种方法在我的时区返回:
-06:00
有关 CAST 和 CONVERT 的更多信息请参阅此处。
您还可以使用
FORMAT
方法直接到达偏移部分,例如:
SELECT FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS TimezoneOffset