私のアプリケーションはApache Derbyを使用しています。タイムスタンプ列の1つ、arrival_timeを読み取り、データベースの現在時刻から間隔を計算しています。Apacheを埋め込みましたTIMESTAMPDIFF関数は、節約後1時間を返しました。
select {fn TIMESTAMPDIFF(SQL_TSI_MINUTE,timestamp('1970-01-01 00:00:00'),CURRENT_TIMESTAMP)} - min(arrival_time)/1000 as "TIME" from APP.myTable
このクエリは正常に動作しますが日の光が、それは私に適切な間隔を返していません保存した後ました。時間差分は常に1時間余分です。
はさらにデバッグするには、私は、クエリの下に実行 - 次のように上記のクエリのためのselect CURRENT_TIMESTAMP from APP.myTable;
select {fn TIMESTAMPDIFF(SQL_TSI_SECOND,timestamp('1970-01-01 00:00:00'),CURRENT_TIMESTAMP)} from APP.myTable;
出力された -
2017年1月9日午前7時45分55秒//現在のタイムスタンプ
を1483951554 //間隔
私の理解によればvalが現在のタイムスタンプと同等であることが、私は、次のエポックタイムスタンプに間隔を変換しようとしていたときにresult-
GMTである必要があります:月、2017年1月9日午前8時45分54秒GMT
タイムゾーン使用中はGMTのみです。私が間違っているところを教えてください。
ありがとうございました。