Sql 如何从DateTimeOffset对象选择UTC偏移量?
我目前正在使用:Sql 如何从DateTimeOffset对象选择UTC偏移量?,sql,sql-server,timezone,Sql,Sql Server,Timezone,我目前正在使用: SELECT DATEPART(TZ, SYSDATETIMEOFFSET()) 但是,它以分钟为单位返回偏移量。我想保留'-05:00'的格式,而不是'-300' 谢谢。如果要提取datetimeoffset变量末尾的确切字符串“-05:00”,可以使用SQL Server字符串操作。我认为使用内置的SQL DateTime函数不可能做到这一点。您可以使用CAST函数,我认为它默认为ISO 8601格式: declare @timeStr nvarchar(50) = CA
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
有关强制转换和转换的详细信息。在MS SQL Server中,您也可以使用
SELECT DATENAME(tz, SYSDATETIMEOFFSET())
这将返回一个带有偏移量的nvarchar
不,它不是mysql。这是Microsoft SQL。好的。。我之前在旧版本(2005)中进行了查询,现在我真正理解了您的问题:)您想要当前偏移量还是特定日期的偏移量?DB当前的偏移量。感谢您的回复。