0

私は長い間Oracle DBを使用しており、タイムゾーンを気にせずに日付を保存しています。しかし、クライアントとサーバーが異なるタイムゾーンにあるという問題があり、タイムゾーンに従って日付/時刻の変換を実行する必要があります。これにより、多くの疑問が生じました。

  1. タイムゾーンとともに日付/時刻を常に保存する必要がありますか? servertimezone が変更されるとデータが破損するため、これを求めています。

  2. Oracle db サーバーが特定の地域にある場合、常にローカル タイムゾーンで実行する必要がありますか? これに対する基準はありますか?

私の 2 番目のポイントは、異なるリージョンに配置されているが、prod DB と同じデータを持つ DR データベース サーバーに関連しています。タイムゾーンが両方の DB で同じでない場合、問題が発生します。

4

1 に答える 1

1

クライアントの日付をタイムゾーンで表示できるようにするには、オフセットが必要です。たとえば、サーバーが US EDT で実行されていて、そのようにして何年も時間を節約できたとします。すべてのデータはそのように保存されます。したがって、各ユーザーのオフセットを格納するフィールドを作成する必要があります。次に、select の各日付/時刻フィールドにこのオフセットを適用する必要があります。あなたがこれをどのように行うのか、私にはわかりません。それは単なる select ステートメント、レポート、または Web サイトですか? しかし、これがアプリケーションの場合、クライアントはオフセットを含むユーザー情報をロードします。たとえば、US EDT のユーザーの場合、オフセットは 0 になります。次に、db から要求された日付/時刻フィールドには、オフセット値が適用されます。もちろん、アプリケーションは最初からこのように設計されていないため、かなりの労力が必要になる場合があります。

于 2013-08-23T17:43:45.480 に答える