Sql Sever 2008 R2 を使用しています。timezoneoffSet からタイムゾーン標準名または夏時間名を特定する方法はありますか。
たとえば、「2013-09-26 03:00:00.0000000 -04:00」があり、上から「東部夏時間」が必要です。
SQLサーバーでこれを達成するにはどうすればよいですか?
任意の提案をいただければ幸いです。
Sql Sever 2008 R2 を使用しています。timezoneoffSet からタイムゾーン標準名または夏時間名を特定する方法はありますか。
たとえば、「2013-09-26 03:00:00.0000000 -04:00」があり、上から「東部夏時間」が必要です。
SQLサーバーでこれを達成するにはどうすればよいですか?
任意の提案をいただければ幸いです。
ローカル システムのタイム ゾーンを取得することについて話している場合は、過去に徹底的に調査しましたが、「安全でない」SQL CLR 呼び出し、またはxp_regread
レジストリからこれを読み取るためのサポートされていない呼び出しに頼らない限り、それは不可能です。 . 一般的な推奨事項は、データベースではなく、アプリケーション コードで行うことです。
ただし、-4:00
入力値に のオフセットがあり、それをタイムゾーン名に変換したいという場合は、残念ながら、SQL でも、あなたのアプリケーションコード。
その理由は、同じオフセットを共有する多くのタイム ゾーンがあるためです。たとえば、を使用するすべてのゾーンを示すこのウィキペディアのページ-04:00
を参照してください。
範囲を米国だけに限定しても、夏時間のために特定のケースでは機能しません。たとえば、 のタイム スタンプを考えてみましょう2013-11-03T01:00:00-05:00
。これは東部標準時ですか? それとも中央夏時間?現時点ではどちらかである可能性があるため、判断する方法はありません。
米国では (ヨーロッパとは異なり)、各タイム ゾーンは独自の現地時間で午前 2 時に移行します。つまり、東から西に移動する波のようなものです。米国のタイム ゾーンは通常 1 時間間隔ですが、スプリング フォワード移行中は 2 時間の間隔があり、フォールバック移行中は同じ正確な現地時間を持つことができます。