6

Sql Sever 2008 R2 を使用しています。timezoneoffSet からタイムゾーン標準名または夏時間名を特定する方法はありますか。

たとえば、「2013-09-26 03:00:00.0000000 -04:00」があり、上から「東部夏時間」が必要です。

SQLサーバーでこれを達成するにはどうすればよいですか?

任意の提案をいただければ幸いです。

4

1 に答える 1

1

ローカル システムのタイム ゾーンを取得することについて話している場合は、過去に徹底的に調査しましたが、「安全でない」SQL CLR 呼び出し、またはxp_regreadレジストリからこれを読み取るためのサポートされていない呼び出しに頼らない限り、それは不可能です。 . 一般的な推奨事項は、データベースではなく、アプリケーション コードで行うことです。

ただし、-4:00入力値に のオフセットがあり、それをタイムゾーン名に変換したいという場合は、残念ながら、SQL でも、あなたのアプリケーションコード。

その理由は、同じオフセットを共有する多くのタイム ゾーンがあるためです。たとえば、を使用するすべてのゾーンを示すこのウィキペディアのページ-04:00を参照してください。

範囲を米国だけに限定しても、夏時間のために特定のケースでは機能しません。たとえば、 のタイム スタンプを考えてみましょう2013-11-03T01:00:00-05:00。これは東部標準時ですか? それとも中央夏時間?現時点ではどちらかである可能性があるため、判断する方法はありません。

米国では (ヨーロッパとは異なり)、各タイム ゾーンは独自の現地時間で午前 2 時に移行します。つまり、東から西に移動する波のようなものです。米国のタイム ゾーンは通常 1 時間間隔ですが、スプリング フォワード移行中は 2 時間の間隔があり、フォールバック移行中は同じ正確な現地時間を持つことができます。

于 2013-10-03T21:17:16.263 に答える