Lad os først opløse dit udtryk
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'
gør følgende:
TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS')
-> Konvertercreated_date
værdi tilVARCHAR2
TO_DATE(..., 'DDMMYYYY:HH24:MI:SS')
-> Konverter det tilbage til enDATE
CAST(... AS TIMESTAMP)
-> Konverter det til enTIMESTAMP
(uden tidszone)FROM_TZ(..., 'Europe/London')
-> Vedhæft tidszonen 'Europa/London' til den... AT TIME ZONE 'America/New_York'
-> Konverter til tidszonen 'America/New_York'
Punkt 1,2 og 3 er ubrugelige! Siden created_date
er et TIMESTAMP
du kan gøre det kortere
TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')
I tilfælde af din SESSIONTIMEZONE
er Europe/London
du kan endda lave
TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')