2013-01-04 28 views
5

中央ヨーロッパの夏時間は、3月の最後の日曜日に始まります。時計は02:00〜03:00に設定されています。データベースリクエストでタイムスタンプ計算を実行するとどうなりますか?01:59に伝えますか?夏時間によるタイムスタンプの計算

UPDATE sessions SET aliveuntil = (CURRENT_TIMESTAMP + INTERVAL '1' MINUTE) WHERE id = ? 

私は結果として02:00を取得しますか?

私たちが03:00から02:00まで時計を設定したら、どうしたらいいですか?

SELECT id FROM sessions WHERE aliveuntil < (CURRENT_TIMESTAMP - INTERVAL '1' MINUTE) 

時間が03:00から02:00に変更された後... (CURRENT_TIMESTAMP - INTERVAL '1' MINUTE)は02:00にどうなりますか? 02:59か01:59ですか?

これはどのように処理する必要がありますか?ベスト・プラクティス、およびOracle Database 11gリリース11.2.0.2.0でどのように処理されているか(特に私の場合)

答えて

3

ドキュメントを正しく理解している場合は、テーブル/列がデータベースにどのように設定されているかによって異なります。 WITH TIME ZONEを使用するように列が設定されている場合、Oracleは自動的に正しい値または関連する値を決定します。上記の例では、列aliveuntilにこの設定がある場合、1:59に1分を追加しようとすると、時刻は3:00に更新されます。ここで

は、私が被写体に役に立ったと評価記事です:ダウン記事の下部に

http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm

スクロールし、あなたが探しているものを見るべきです。ここで

は、物品の部分は、私が関連を発見しました:

例えば、米国、時間の東部地域では午前3時00分00秒に一時59分59秒午前から 変更夏時間のときに が有効になります。 02:00:00から02:59:59までの間隔は ではありません。その区間の値は無効です。

関連する問題