Windows Azure上で実行するために既存のアプリケーションを移植する処理中です。現在のソリューションは、WindowsがSQL Server上に設定されている時間帯に大きく依存しています。ストアドプロシージャとビューでは、非常に頻繁にGETDATE()
を使用します。問題は、SQL AzureがUTCタイムゾーンを使用して実行されていることです。私は、GETDATE()
メソッド呼び出しを、タイムゾーンを設定するデータベースの設定に基づいて時間を取得するメソッド呼び出しに置き換えようとしています。私が抱えている問題は夏時間です。誰もが現在の日付/時刻を返し、DSTを適切に調整できるSQLのメソッドを書いていますか?SQL Serverの特定のタイムゾーンの現地時間
私は、UTCの時間をボード全体で使用する必要があると答えてくれる回答をいくつか得るつもりだと思います。それは私がむしろ説明したくない理由のための選択肢に見えません。
私に教えていただける助けや助言をいただければ幸いです。ありがとう。
あなたはUTCを使用するべきです。 DSTへの変換は後部の苦痛であり、DSTの有効期限が切れたときのルールは数年前に変更されています。あなたは変換を行うためにudfを書くことができますが、それは高価な操作になります。 –
DSTはかなり苦しいです。以前の人生では、ユーザーは異なるタイムゾーン設定を持ち、異なるタイムゾーンがDSTの影響を受けるかどうかは異なるため、カレンダーテーブルを使用しました。そのため、ユーザーは自分のタイムゾーンを環境設定として指定し、今から6か月間イベントをスケジュールしたときに、カレンダーテーブルのルックアップに基づいてUTC時刻を保存しました。 –
地元の時間を使いたい理由を聞くのはいいですね。私が知っているものがいくつかありますが、それらは比較的まれです。関連する質問とhttp://blogs.msdn.com/b/sqlprogrammability/archive/2008/03/18/using-time-zone-data-in-sql-server-2008.aspxを見ると、あなたはこれは簡単な作業ではありません。間違いなくT-SQL自体の中にいる必要はありますか?値をストアドプロシージャのパラメータとして渡すことはできません。 –