まず、あなたの表現を溶かしましょう
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')