Lassen Sie uns zuerst Ihren Ausdruck auflösen
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'
macht folgendes:
TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS')
-> Konvertieren Siecreated_date
Wert zuVARCHAR2
TO_DATE(..., 'DDMMYYYY:HH24:MI:SS')
-> Konvertieren Sie es zurück in einDATE
CAST(... AS TIMESTAMP)
-> Wandeln Sie es in einenTIMESTAMP
um (ohne Zeitzone)FROM_TZ(..., 'Europe/London')
-> Zeitzone 'Europe/London' anhängen... AT TIME ZONE 'America/New_York'
-> In Zeitzone 'America/New_York' umwandeln
Punkt 1,2 und 3 sind nutzlos! Seit created_date
ist ein TIMESTAMP
Sie können es auch kürzer machen
TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')
Falls Ihre SESSIONTIMEZONE
ist Europe/London
Sie können sogar machen
TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')