Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zapytanie Oracle sql musi się zmieniać w zależności od strefy czasowej

Znalazłem odpowiedź na moje pytanie.

najwyraźniej musisz wziąć pod uwagę ustawienia strefy czasowej podczas obliczania wartości epoki

  1. dodaj 10 godzin (10*60*60*1000 milisekund) do wartości epoki – aktualna wartość epoki jest w GMT, więc aby była to EST (GMT+10), dodałem to.
  2. Użyto TO_TIMESTAMP_TZ zamiast 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zbieraj statystyki dotyczące indeksu lub upuszczaj je?

  2. Dlaczego połączenie przez wyrażenie w pętli FOR jest wykonywane tylko raz?

  3. Ustawienie wartości LIMIT podczas korzystania ze zbiorczego zbierania

  4. Jak tworzyć pakiety PL/SQL w bazie danych Oracle

  5. datanucleus + jpa + wyrocznia. Dziwny błąd z nieistniejącymi tabelami