K M*_*K M 3 sql sql-server timezone
我目前正在使用:
SELECT DATEPART(TZ, SYSDATETIMEOFFSET())
Run Code Online (Sandbox Code Playgroud)
但是,它以分钟为单位返回偏移量.我想保留'-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)
Run Code Online (Sandbox Code Playgroud)
如果您想更明确,可以使用格式类型为126的CONVERT函数,明确告诉SQL Server使用ISO 8601:
declare @timeStr nvarchar(50) = CONVERT(nvarchar(50), SYSDATETIMEOFFSET(), 126)
select right(@timeStr, 6)
Run Code Online (Sandbox Code Playgroud)
我的时区中的这两种方法都返回:
-06:00
Run Code Online (Sandbox Code Playgroud)
有关CAST和CONVERT的更多信息,请参见此处.
在MS SQL Server中,您也可以使用
SELECT DATENAME(tz, SYSDATETIMEOFFSET())
Run Code Online (Sandbox Code Playgroud)
这将返回带有偏移量的nvarchar