sql >> Databasteknik >  >> RDS >> Oracle

Oracle sql-frågan måste ändras baserat på tidszon

Hittade svaret på min fråga.

tydligen måste du ta hänsyn till tidszoninställningarna när du beräknar epokvärde också

  1. lägg till 10 timmar (10*60*60*1000 millisekunder) till epokvärdet - epokströmvärdet är i GMT så för att göra det EST (GMT+10) lade jag till detta.
  2. Använde TO_TIMESTAMP_TZ istället för to_date

    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. C#:SQL Query Builder-klass

  2. orderpost enligt anpassad arrayposition

  3. T-SQL Datetime Data Type

  4. PDO - lastInsertId() för infogningsfråga med flera rader