2012-05-01 13 views
5

SQL Serverのジョブ/スケジュール - 米国英国夏時間調整対SQL Serverのジョブ/スケジュール - 英国夏時間調整対米

我々は16でSQLエージェントジョブを実行する必要がある、英国ベースのサーバーを持っています: 30(米国中部時間 - これは奇妙に見えるかもしれませんが、一部のデータが利用できるためです)。英国と米国の時差は6時間ですので、通常これは問題ではありませんので、私たちは22:30の仕事を予定しています。

しかし、英国と米国では、3月と11月に夏時間の異なる時刻に時計を調整するため、イギリスと米国の時差が5時間の2週間の期間があります。

私はSQL Serverがこの時間差の変化を特定し、sp_update_scheduleのようなものを使用してジョブを再スケジュールする方法を実装したいと考えています。

私が持っているアプローチの1つは、米国のサーバーで現在のタイムスタンプを取得し、それを現在のイギリス時間と比較することです。時間差が5時間の場合はジョブを21:30に再スケジュールし、時間差が6時間の場合はジョブを22:30に再スケジューリングします。

しかし、米国のサーバーで現在のタイムスタンプを取得し、理想的にはテーブルに夏時間調整の日付のリストを格納する必要がないという別の解決法を提案することもできます。おそらくもっとダイナミックなものでしょうか?

+1

SQLの 'GETUTCDATE'は便利かもしれません – Paddy

答えて

3

実際には、2つの実行可能な解決策について言及したようです:そのタイムゾーンのサーバーに問い合わせるか、重要な日付の一覧を格納します。パーティーラインは、なぜ下の最初のリンクに。独自の関数を実装することができます(これは、日付のリストを格納するか、サーバーにオフセットを要求する必要があります)。または、タイムゾーン情報のパブリックドメインリストを得ることができます(下の2番目のリンクのように)。オフセットを返すいくつかのWebサービスもあります。 Oracleは、指定されたタイムゾーン間で変換するタイムゾーンのデータベースを実装しています。したがって、すでに両方をサポートしている場合は、それを実行できます。

3番目のリンクでCLR関数でラップできるC#の実装があります。

http://blogs.msdn.com/b/sqlprogrammability/archive/2008/03/18/using-time-zone-data-in-sql-server-2008.aspx

http://www.twinsun.com/tz/tz-link.htm

http://timezone.codeplex.com/

関連する問題