我目前正在使用:
SELECT DATEPART(TZ, SYSDATETIMEOFFSET())
但是,它以分钟为单位返回偏移量。我想保留 '-05:00' 而不是 '-300' 的格式
谢谢你。
我目前正在使用:
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 的更多信息,请参见此处。