我目前正在使用:
SELECT DATEPART(TZ, SYSDATETIMEOFFSET())
但是,它会以分钟为单位返回偏移量。我想保留'-05:00'的格式而不是'-300'
谢谢。
答案 0 :(得分:5)
如果你想提取确切的字符串' -05:00'在datetimeoffset变量的末尾,您可以使用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 see here的更多信息。
答案 1 :(得分:5)
在MS SQL Server中,您也可以使用
SELECT DATENAME(tz, SYSDATETIMEOFFSET())
将返回带有偏移
的nvarchar