回答

收藏

在SQL Server中获取datetimeoffset的偏移量

技术问答 技术问答 199 人阅读 | 0 人回复 | 2023-09-14

在SQL Server中,我需要找到给定的偏移量datetimeoffset(7)。: L9 Q2 S6 y% p1 X1 z4 T! e
我已经研究了文档,并且有各种方法可以更改偏移量,但是没有一种方法可以了解特定值的偏移量(很抱歉,如果我错过了它)。
2 Y" _' U% P% R/ E好吧,我想出了以下代码,尽管看起来似乎可行,但我觉得它太复杂了。
: Y7 @7 d! l6 `7 U5 k7 _DECLARE @datetimeOffset datetimeoffset(7)% I. y/ u, ^7 a5 |. J. v# V5 I* o' }
SET @datetimeOffset = CAST('2007-05-08 22:35:29.1234567-05:00' AS datetimeoffset(7))
5 h1 K8 m1 H3 eDECLARE @result datetimeoffset(7)
; ]+ A/ v2 a/ ^1 o9 [! d7 IDECLARE @offsetMin int: y5 S2 t3 t$ G! D( Q
SET @offsetMin = DATEDIFF(mi, cast(SWITCHOFFSET(@datetimeOffset, '+00:00') as datetime), cast(@datetimeOffset as datetime))# ?* _$ \' k4 q8 W8 j1 k0 p
SELECT @offsetMin
5 u; ]: c9 T3 m* I我仍然必须转换为+00:00格式,但想检查是否有更好的方法。- c6 S! M1 j. p! h+ K
谢谢!
5 T, A7 J4 a, G" i. d1 f                5 s% X4 D" }! H+ ]2 c4 N
解决方案:/ I4 U3 \1 }# _4 a) V
                . S* R" l# R( E& d8 h! z

; {- l3 H$ I) U: S- b7 b' v( F: z$ N+ {# m( G; {
                datepart函数具有tz选项,它是时区偏移量(以分钟为单位)。
+ c- }( a7 u7 odatepart(tz,@datetimeoffset)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则