sql >> データベース >  >> RDS >> Oracle

OracleSQLクエリはタイムゾーンに基づいて変更する必要があります

    私の質問に対する答えを見つけました。

    明らかに、エポック値を計算するときもタイムゾーン設定を考慮する必要があります

    1. エポック値に10時間(10 * 60 * 60 * 1000ミリ秒)を追加します-エポックの現在の値はGMTであるため、EST(GMT + 10)にするためにこれを追加しました。
    2. to_dateの代わりにTO_TIMESTAMP_TZを使用

      SELECT tableA.columnA,tableB.columnB 
      FROM tableA INNER JOIN tableB ON  tableA.aId = tableB.aId 
      WHERE (TO_TIMESTAMP_TZ('1970-01-01 00:00:00 +10:00','yyyy-MM-dd hh24:mi:ss TZH:TZM') +    ((tableB.epochValue+(10*60*60*1000))/60/60/24/1000)) >  to_date('##FROM_DATE## +10:00', 'yyyy-MM-dd hh24:mi:ss TZH:TZM') 
      AND (TO_TIMESTAMP_TZ('1970-01-01 00:00:00 +10:00','yyyy-MM-dd hh24:mi:ss TZH:TZM') + ((tableB.epochValue+(10*60*60*1000))/60/60/24/1000)) <= to_date('##TO_DATE## +10:00', 'yyyy-MM-dd hh24:mi:ss TZH:TZM');
      



    1. Key:ValueをJSON文字列に追加するMySQLクエリ

    2. Oracleで時差を特定の形式に変換する

    3. MySQLデータベース全体を複製する

    4. SQLの欠落データテーブルにCreatedByとCreatedOnを挿入します