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