Първо нека разтворим изражението ви
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'
прави следното:
TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS')
-> Преобразуване наcreated_date
стойност наVARCHAR2
TO_DATE(..., 'DDMMYYYY:HH24:MI:SS')
-> Преобразувайте го обратно вDATE
CAST(... AS TIMESTAMP)
-> Преобразувайте го вTIMESTAMP
(без часова зона)FROM_TZ(..., 'Europe/London')
-> Прикрепете часова зона „Европа/Лондон“ към него... AT TIME ZONE 'America/New_York'
-> Преобразуване в часова зона 'America/New_York'
Точка 1,2 и 3 са безполезни! От created_date
е TIMESTAMP
можете да го направите по-кратко
TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')
В случай, че вашият SESSIONTIMEZONE
е Europe/London
можете дори да направите
TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')