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

Data/czas Konwersja między różnymi strefami czasowymi

Najpierw rozpuśćmy twoją ekspresję

FROM_TZ(CAST(TO_DATE(TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS'), 'DDMMYYYY:HH24:MI:SS') AS TIMESTAMP), 'Europe/London') AT TIME ZONE 'America/New_York'

wykonuje następujące czynności:

  1. TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS') -> Konwertuj created_date wartość do VARCHAR2
  2. TO_DATE(..., 'DDMMYYYY:HH24:MI:SS') -> Konwertuj go z powrotem na DATE
  3. CAST(... AS TIMESTAMP) -> Przekształć go w TIMESTAMP (bez strefy czasowej)
  4. FROM_TZ(..., 'Europe/London') -> Dołącz do niej strefę czasową „Europa/Londyn”
  5. ... AT TIME ZONE 'America/New_York' -> Konwertuj na strefę czasową „Ameryka/Nowy_Jork”

Punkty 1,2 i 3 są bezużyteczne! Od created_date to TIMESTAMP możesz to zrobić krócej

TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')

W przypadku Twojego SESSIONTIMEZONE to Europe/London możesz nawet zrobić

TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można połączyć się z Oracle za pomocą uwierzytelniania systemu Windows za pomocą ODP.NET

  2. WYBIERZ dane Z KURSORA PAKIETU, wydrukuj

  3. Różnica między klientem Oracle lnstant a klientem Oracle

  4. Wyrażenie regularne Oracle - nie zaczyna się i nie kończy się na

  5. Jak wyświetlić rekordy z tabeli uporządkowanej jak w klauzuli where?