一尘不染

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

sql

我目前正在使用:

SELECT DATEPART(TZ, SYSDATETIMEOFFSET())

但是,它以分钟为单位返回偏移量。我想保留’-05:00’而不是’-300’的格式

谢谢你。


阅读 149

收藏
2021-05-30

共1个答案

一尘不染

如果要在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的更多信息,请参见此处

2021-05-30