2013-02-24 9 views
17

SQL Serverでは、指定したdatetimeoffset(7)のオフセットを見つける必要があります。SQL Serverでのdatetimeオフセットのオフセットの取得

私はドキュメントを研究しましたが、オフセットを変更する方法はありますが、特定の値のオフセットを知る方法はありませんでした。

私は次のコードを思いつきましたが、私はあまりにも複雑すぎると感じましたが、うまくいくようです。

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形式が、これを行うには良い方法があるかどうかを確認したかったです。

ありがとうございます!

答えて

30

datepart関数には、分単位のタイムゾーンオフセットであるtzオプションがあります。

datepart(tz,@datetimeoffset) 
+6

また、DATENAME(tz、@datetimeoffset)を取得してオフセットをvarcharとして取得することもできます。 –

+4

'TZOFFSET'は' tz'の代わりに働き、SSMSシンタックスハイライターによって認識されます。 –

+0

これはSSMS 2012+ – codeMonkey

関連する問題