Per prima cosa dissolviamo la tua espressione
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'
fa quanto segue:
TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS')
-> Converticreated_date
valore aVARCHAR2
TO_DATE(..., 'DDMMYYYY:HH24:MI:SS')
-> Convertilo di nuovo in unDATE
CAST(... AS TIMESTAMP)
-> Convertilo in unTIMESTAMP
(senza fuso orario)FROM_TZ(..., 'Europe/London')
-> Allega il fuso orario "Europe/London"... AT TIME ZONE 'America/New_York'
-> Converti nel fuso orario 'America/New_York'
I punti 1,2 e 3 sono inutili! Dal created_date
è un TIMESTAMP
puoi farlo più breve
TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')
Nel caso in cui il tuo SESSIONTIMEZONE
è Europe/London
puoi anche fare
TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')