日付範囲のレコードを取得するためのSQLクエリがあります。私のクエリは、データを分析したときにbyutを見つけましたが、レコードはGMTタイムゾーン値に基づいて取得されているため、結果が正しくないことがわかりました。
データベースのUNIXエポック値から時間を取得します。
SELECT tableA.columnA,tableB.columnB
FROM tableA INNER JOIN tableB ON tableA.aId = tableB.aId
WHERE (to_date('1970-01-01 00:00:00 +10:00','yyyy-MM-dd hh24:mi:ss') + (tableB.epochValue/60/60/24/1000)) > to_date('--FROM_DATE--', 'yyyy-MM-dd hh24:mi:ss')
AND (to_date('1970-01-01 00:00:00 +10:00','yyyy-MM-dd hh24:mi:ss') + (tableB.epochValue/60/60/24/1000)) <= to_date('--TO_DATE--', 'yyyy-MM-dd hh24:mi:ss');
GMT + 10のタイムゾーンに基づいてレコードを取得したいのですが、このスクリプトはGMTタイムゾーンに基づいてデータを取得します。正しい日付オブジェクトを取得するためにタイムゾーンを渡す方法を考えていました
http://www.epochconverter.com/を使用して、これらの値を取得しました。エポック値-1345079730 GMT:2012年8月16日木曜日01:15:30 GMTタイムゾーン:2012年8月16日木曜日11:15:30 GMT + 10
私のデータベースは-OracleDatabase11gEnterpriseEditionリリース11.2.0.2.0-64ビット