【问题标题】:Getting offset of datetimeoffset in SQL Server在 SQL Server 中获取 datetimeoffset 的偏移量
【发布时间】:2013-02-09 22:43:39
【问题描述】:

在 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

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

谢谢!

【问题讨论】:

    标签: sql sql-server sql-server-2008 tsql sql-server-2012


    【解决方案1】:

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

    datepart(tz,@datetimeoffset)
    

    【讨论】:

    • 您还可以获取 DATENAME(tz, @datetimeoffset) 以获取 varchar 形式的偏移量。
    • TZOFFSET 代替 tz 工作,并且值得 SSMS 语法高亮显示。
    猜你喜欢
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    相关资源
    最近更新 更多