0

朝:

以前に尋ねた質問で、PL SQL クエリでタイム ゾーンの値を管理する際に役立つヒントをいくつか取り上げました。

しかし、私はこの問題を誤解していました。

タイムゾーンによって異なる日付と時刻でレコードが書き込まれているテーブルがあります。これらのレコードは、C# アセンブリによってクエリされ、AXIS サービスに送信されます。

インドでホストされている AXIS サービスにレコードが到達すると、タイムゾーンが IST に変更されます。

私がする必要があるのは、レコードにあったタイム ゾーンが、データが他のタイム ゾーンからクエリされたときに受信されるタイム ゾーンであることを確認することです。

どうすればいいですか?これが Oracle/PL SQL クエリの問題であるかどうかはわかりません。そうでない場合は、私をまっすぐにしてください。

洞察をありがとう。

4

1 に答える 1

1

どのようなデータ型が渡されますか?

前の質問に基づいて、Oracle で使用しているデータ型はDATE. OracleDATEには、関連付けられたタイム ゾーンがありません。言及していない別の列にタイムゾーンを保存していない限り、それは、スタック内の別の場所でDATE、タイムゾーンを暗示して Oracle から読み取られている (または Oracle に書き込まれている) ことを意味します。タイムゾーンを暗示しているスタックのコンポーネントが何であれ、それが原因です。

TIMESTAMP WITH [LOCAL] TIME ZONEOracle の観点からは、 Oracle がタイム ゾーンを認識できるようにデータ型を使用するのが最善の方法です。その後、PL/SQL で、あるタイム ゾーンのタイムスタンプを別のタイム ゾーンのタイムスタンプに変換できます。したがって、データは常に IST で取得することも、常に GMT/UTC で取得することも、常に Us/Eastern で取得することもできます。

于 2012-05-15T13:31:55.353 に答える