4

既存のアプリケーションを移植してWindowsAzureで実行できるようにしています。現在のソリューションは、WindowsがSQLServerで設定されているタイムゾーンに大きく依存しています。GETDATE()ストアドプロシージャとビューで頻繁に使用します。問題は、SQLAzureがUTCタイムゾーンを使用して実行されていることです。GETDATE()メソッド呼び出しを、データベースのタイムゾーンの設定に基づいて時間を取得するメソッド呼び出しに置き換えようとしています。私が抱えている問題は夏時間です。現在の日付/時刻を返し、DSTを適切に調整できるメソッドをSQLで記述した人はいますか?

全体的にUTC時間を使用する必要があるという回答がいくつか得られると思います。説明したくない理由から、それは選択肢ではないようです。

あなたが私に与えることができるどんな助け/提案も大いにありがたいです。ありがとう。

4

2 に答える 2

1

DateTimeOffset問題の列をではなく に更新することにしましたDateTime

回答してくれたすべての人に感謝します。

于 2012-04-24T20:34:57.777 に答える
0

これが役立つかどうかはわかりません。ただし、これは SERVER レジストリでレジストリ読み取りを実行します。ローカル コンテキストでは、サーバーのタイムゾーンと GMT の違いを判断し、そこから必要な計算を実行できます。他のフォーラムの投稿の 1 つから拾った便利な小さなトリック (クレジットはそこにあります)。

Use Master
Go



DECLARE @ZONEDIFF INT

EXECUTE dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\TimeZoneInformation','ActiveTimeBias', @ZONEDIFF OUT

SELECT getdate() AS MyTime, dateadd(minute, @ZONEDIFF, getdate() ) as SERVERZONE

それが役立つかどうか、または私があなたを正しく理解していない場合はお知らせください。

マック

于 2012-04-21T07:34:34.083 に答える