Låt oss först lösa upp ditt uttryck
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öljande:
TO_CHAR(q.created_date, 'DDMMYYYY:HH24:MI:SS')
-> Konverteracreated_date
värde tillVARCHAR2
TO_DATE(..., 'DDMMYYYY:HH24:MI:SS')
-> Konvertera tillbaka till enDATE
CAST(... AS TIMESTAMP)
-> Konvertera den till enTIMESTAMP
(utan tidszon)FROM_TZ(..., 'Europe/London')
-> Bifoga tidszonen 'Europa/London' till den... AT TIME ZONE 'America/New_York'
-> Konvertera till tidszon 'America/New_York'
Punkt 1,2 och 3 är värdelösa! Sedan created_date
är en TIMESTAMP
du kan göra det kortare
TO_CHAR(FROM_TZ(q.created_date, 'Europe/London') AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')
Om din SESSIONTIMEZONE
är Europe/London
du kan till och med göra
TO_CHAR(q.created_date AT TIME ZONE 'America/New_York', 'DD-MON-YYYY HH24:MI:SS')