0

エポック時間 (秒) があります。JAVAそれは私がするときに、私に別の時間を示しています

new Date(time*1000)

そしてSQLで私がするとき

SELECT cast((DATE '1970-01-01' + time/24/60/60) as timestamp) from dual.

主な問題は、午前 2 時から午前 4 時までの特定の間隔のデータが必要なことです。したがって、秒の値をSQLクエリに渡すと。午前 9 時から午前 11 時の間と解釈します。これはタイムゾーンの違いによるものだと理解しています。

どうすればこの問題を克服できますか?

4

2 に答える 2

1

代わりにタイムスタンプを使用してみてください。

SELECT cast((TIMESTAMP '1970-01-01 00:00:00.00' + time/24/60/60) as timestamp)
  FROM dual

デモ: http://www.sqlfiddle.com/#!4/d41d8/1465

于 2012-07-23T18:55:42.780 に答える
0

タイム ゾーンに関連する問題に対処するための私の提案は、常に内部で時間を UTC として処理し、データ ストアに UTC として保存することです。ユーザーに表示するためだけにローカル時間に変換してください。

于 2012-07-23T18:55:44.870 に答える