2010-12-06 7 views
0

SQL ServerがAU ACSDT時間ではなくAU ESDTになっているように見えますが、サーバー(Server 2008)はAU ACSDTで正しいタイムゾーンを持っています。タイムゾーンが30分間違っています

私が実行します。

SELECT GETUTCDATE(), GETDATE(), DATEDIFF(HOUR, GETDATE(), GETUTCDATE()) ; 

私が得る結果は以下のとおりです。私が持っている

2010-12-06 01:47:57.207 2010-12-06 12:17:57.207 -11 

A DBはUTC形式でその日付を格納し、私は正しいTZが、それは常にあるオフセットを計算するときオフに30分。

ご協力いただきまして誠にありがとうございます。

環境: SQL Server 2005のx64ののSP3(9.0.4035) MS Server 2008のx64のSP1の

+2

正しいオフセットは何ですか?サーバーは10:30だと思っているようです。 – Gabe

+0

だから、私は数時間で差分を取っていたので、切り上げていた。上のクエリを上記のように変換して差分を求めると、630が返されます。結局のところ、大きなニュースである問題はなく、SQLクエリのTZオフセットを処理するだけです。ご協力いただきありがとうございます。 – Lima

+1

少し話題ですが、個人的にはすべてのデータをUTCとして保存することに決めました。その後、グローバリゼーションはずっと簡単になりました。 –

答えて

0

これは私の間違いでした、タイムゾーンと出力時間は正確でしたので、時間が丸められているので、分は私のクエリで戻っていませんでした。

1

ACDTはUTC + 10.5であるあなたは、「計算すると言うとき、AEDTは

UTC + 11です正しいTZオフセット "、あなたはそれが正しいと確信していますか?あなたのクエリから、GETUTCDATE + 10.5がGETDATE(01:47 + 10.5 = 12:17)と同じ結果になるので、SQLがACDTを使用しているように見えます。

+0

遅れた応答に対する謝罪。私はこのウィンドウをしばらく開いていて、私の投稿を提出するのを忘れてしまった! – Eaglebird

1

あなたのサーバ時間は正しいと言われましたが、実際には "サーバのシステム時間"をチェックしましたか?それはサーバーのコントロールパネルの "管理"タブの下にあります

私がこれを言っている理由は、実際には小さな時計を使ってサーバーの時刻を調整することもできます。あなたのサーバーは、これを変更する正しい方法ではありません

関連する問題