如何从DateTimeOffset对象中选择UTC偏移量?

6

我目前使用的是:

SELECT DATEPART(TZ, SYSDATETIMEOFFSET())

然而,它会返回分钟偏移量。我想要保留“-05:00”的格式,而不是“-300”。

谢谢。


不是MySQL,而是Microsoft SQL。 - K M
好的,我之前在旧版本(2005)中查询,现在我真正理解你的问题了 :) - PCM
你想要当前偏移量还是特定日期的偏移量? - usr
数据库当前的偏移量。 - K M
2个回答

9
在MS SQL Server中,您也可以使用该功能。
SELECT DATENAME(tz, SYSDATETIMEOFFSET())

该函数将返回一个带有偏移量的nvarchar。

执行结果的截图


5

如果您想从datetimeoffset变量的末尾提取确切的字符串“-05:00”,可以使用SQL Server字符串操作。 我认为使用内置的SQL DateTime函数无法做到这一点。 您可以使用CAST函数,我相信默认为ISO 8601格式:

declare @timeStr nvarchar(50) = CAST(SYSDATETIMEOFFSET() as nvarchar(50))
select right(@timeStr, 6)

如果您想更明确地表示,可以使用CONVERT函数,并将格式类型设置为126,明确告诉SQL Server使用ISO 8601:

declare @timeStr nvarchar(50) = CONVERT(nvarchar(50), SYSDATETIMEOFFSET(), 126)
select right(@timeStr, 6)

在我的时区,这两种方法返回相同的结果:

-06:00

关于CAST和CONVERT的更多信息,请点击此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接