3つの列を持つテーブルproviders
があります(より多くの列が含まれていますが、この場合は重要ではありません):
starttime
、あなたが彼に連絡できる開始時間。endtime
、あなたが彼に連絡できる最後の時間。region_id
、プロバイダーが存在する地域。米国の場合:カリフォルニア、テキサスなど。英国の場合:イングランド、スコットランドなど。
starttime
とendtime
はタイムゾーン列のない時間ですが、「間接的に」、それらの値にはプロバイダーが存在する地域のタイムゾーンがあります。例えば:
starttime | endtime | region_id (time zone of region) | "real" st | "real" et
----------|----------|---------------------------------|-----------|-----------
03:00:00 | 17:00:00 | 1 (EGT => -1) | 02:00:00 | 16:00:00
多くの場合、時間範囲が現在のサーバー時間内にあるサプライヤーのリストを取得する必要があります(タイムゾーン変換を考慮に入れて)。問題は、タイムゾーンが「一定」ではないことです。つまり、夏の間はタイムゾーンが変更される可能性があります。ただし、この変更は地域に固有のものであり、常に同時に実行されるとは限りません。EGT<=> EGST、ART<=>ARSTなど。
質問は:
1. Webサービスを使用して、地域のタイムゾーンを頻繁に更新する必要がありますか?提供できるWebサービスを知っている人はいますか?
2.この問題を解決するためのより良いアプローチはありますか?
前もって感謝します。
アップデート
私が得ようとしているものを明確にするために例を挙げます。表providers
で私はこの記録を見つけました:
idproviders | starttime | endtime | region_id
------------|-----------|----------|-----------
1 | 03:00:00 | 17:00:00 | 23 (Texas)
2 | 04:00:00 | 18:00:00 | 23 (Texas)
1月にクエリを実行すると、次の情報が表示されます。
- サーバー時間(UTCオフセット)=0時間
- テキサスプロバイダー(UTCオフセット)= +1時間
- サーバー時間=02:00:00
次の結果が得られるはずです:idproviders = 1
6月にクエリを実行すると、次の情報が表示されます。
- サーバー時間(UTCオフセット)=0時間
- テキサスプロバイダー(UTCオフセット)= +2時間(現地時間は変更されていませんが、タイムゾーンは変更されています)
- サーバー時間=02:00:00
次の結果が得られるはずです:idproviders=1および2