Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从DateTimeOffset对象选择UTC偏移量?_Sql_Sql Server_Timezone - Fatal编程技术网

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当前的偏移量。感谢您的回复。