レポートのバグを修正しようとしています。現時点で問題は立っている:Java、Oracle db - trunc(nvl)の後のタイムゾーンの問題がdatetimeオブジェクトのタイムスタンプを取り除く
PSTで2/22の午後9時45分に、誰かが作業命令を提出します。
私たちのOracleデータベースに当てられ、EST(データベースはESTにありますが、米国全土のクライアントと連携して動作します)に正規化します。 iReportはで
、我々は次のように使用している:
trunc(nvl(ls.date_occurred,ls.date_created)) between TRUNC($P{DATE_FROM}) AND TRUNC($P{DATE_TO})
をこれはDateTimeオブジェクトのオフタイムスタンプを取り除き、そのレポートが生成されるとき、それは時間を節約しない、ある日付のみ現在2/23(それぞれ午前12時25分)。
これは明らかに私たちの報告機能を無効にします。タイムゾーンの違いのために翌日に生成されたこの日付オフセットと、調整されたデータにタイムスタンプが関連付けられていないことを除いて、すべてのデータが正しいと思われます。 誰かが日付のタイムスタンプを取り除く関数を使わずにdatetimeのために調整する別の方法がありますか?
なぜ、TRUNC()内で左辺をラップするのですか?あなたがする必要があるのは、それを捨てることだけです。 – mathguy
あなたはTRUNC($ P {DATE_FROM})とTRUNC($ P {DATE_TO})の間の '(nvl(ls.date_occurred、ls.date_created)) 'を意味しますか? – OhMyGodAGirl
はい。そして、あなたはnvl(...)のまわりの外側のかっこは必要ありません。それらはTRUNC関数から残されています。 – mathguy