在SQL Server中获取datetimeoffset的偏移量

use*_*237 25 sql t-sql sql-server sql-server-2008 sql-server-2012

在SQL Server中,我需要找到给定的偏移量datetimeoffset(7).

我已经研究了文档,并且有各种方法可以更改偏移但不知道某个特定值的偏移(抱歉,如果我错过了它).

好吧,我想出了下面的一段代码,我发现它太复杂了,虽然似乎有用.

DECLARE @datetimeOffset datetimeoffset(7)

SET @datetimeOffset = CAST('2007-05-08 22:35:29.1234567-05:00' AS datetimeoffset(7))

DECLARE @result datetimeoffset(7)
DECLARE @offsetMin int

SET @offsetMin = DATEDIFF(mi, cast(SWITCHOFFSET(@datetimeOffset, '+00:00') as datetime), cast(@datetimeOffset as datetime)) 

SELECT @offsetMin
Run Code Online (Sandbox Code Playgroud)

我仍然需要转换为+00:00格式,但想检查是否有更好的方法.

谢谢!

Ken*_*her 41

datepart函数有一个tz选项,它是以分钟为单位的时区偏移量.

datepart(tz,@datetimeoffset)
Run Code Online (Sandbox Code Playgroud)

  • 您还可以获取DATENAME(tz,@ datetimeoffset)以将偏移量作为varchar. (8认同)
  • `TZOFFSET`代替`tz`,并且由于它的价值,它被SSMS语法高亮显示器识别. (7认同)