Dissolvons d'abord votre expression
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'
fait ce qui suit :
TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS')
-> Convertircreated_date
valeur àVARCHAR2
TO_DATE(..., 'DDMMYYYY:HH24:MI:SS')
-> Reconvertissez-le enDATE
CAST(... AS TIMESTAMP)
-> Convertissez-le en unTIMESTAMP
(sans fuseau horaire)FROM_TZ(..., 'Europe/London')
-> Attachez-lui le fuseau horaire 'Europe/Londres'... AT TIME ZONE 'America/New_York'
-> Convertir en fuseau horaire 'America/New_York'
Les points 1,2 et 3 sont inutiles ! Depuis created_date
est un TIMESTAMP
vous pouvez le faire plus court
TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')
Si votre SESSIONTIMEZONE
est Europe/London
vous pouvez même faire
TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')