Laten we eerst je uitdrukking ontbinden
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'
doet het volgende:
TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS')-> Converteercreated_datewaarde naarVARCHAR2TO_DATE(..., 'DDMMYYYY:HH24:MI:SS')-> Converteer het terug naar eenDATECAST(... AS TIMESTAMP)-> Converteer het naar eenTIMESTAMP(zonder tijdzone)FROM_TZ(..., 'Europe/London')-> Voeg er tijdzone 'Europe/London' aan toe... AT TIME ZONE 'America/New_York'-> Converteren naar tijdzone 'America/New_York'
Punt 1,2 en 3 zijn nutteloos! Sinds created_date is een TIMESTAMP je kunt het korter doen
TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')
In het geval dat uw SESSIONTIMEZONE is Europe/London je kunt zelfs
TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')