私はOracleを初めて使用し、誰かがこのシナリオを明確にしてくれることを願っています。
一連の日付を返す非常に大きなクエリを作成しました(Oracle10g)。
SQL Developerでは、これらの日付はDD-MON-YY形式で表示されます(例:「12-MAY-12」)。SQL Developerのフィールドのデータ型は、それが日付型であることを示しており、「単純」ラジオボタンがチェックされています。SQL Developerでこのクエリを実行すると、次のような日付が表示されます。
2012年5月11日
このクエリは、C#Webサービスの一部であるアセンブリで使用します。QEサーバーがホストされているオフショアチームの誰かが、フィールドの値がISTオフセットに変換されていることに気づきました(DataSetにGetXmlを使用してXMLに変換されています)。問題は、SQL Developerで出力を確認できないため、デバッガーで出力を検査するまで、オフセットが存在することすら知りませんでした。それはこのようにやってくる:
2012-05-11T06:09:15 + 05:30
使用される固有の日付変換関数はなく、日付を引き出すフィールドの名前だけが使用されます。
クエリの実行時にオフセット(日付の時間部分を保持する必要があります)が考慮されないようにクエリを変更するにはどうすればよいですか?質問は複雑に聞こえますが、最終的には、海外の別のデータベースに書き込まれるデータに間違ったオフセットが含まれているため、1日ずれた日付に変換されます。
基本的には時間は必要ですが、オフセットは必要ありません。