Una DATE
Oracle il tipo di dati non ha un fuso orario:è necessario un TIMESTAMP WITH TIMEZONE
tipo di dati:
SELECT TO_TIMESTAMP_TZ(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS TZR YYYY'
)
FROM DUAL
Se vuoi convertire in DATE
(e la regione del fuso orario è sempre CET
) allora puoi usare:
SELECT TO_DATE(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS "CET" YYYY'
)
FROM DUAL
Se lo vuoi come DATE
tipo di dati e per rispettare il fuso orario nella stringa originale, dovrai (1) convertirlo in un TIMESTAMP WITH TIMEZONE
tipo di dati; (2) convertire quel valore in un fuso orario standardizzato (l'UTC è spesso usato per questo); quindi (3) convertilo in una data:
SELECT CAST(
TO_TIMESTAMP_TZ(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS TZR YYYY'
)
AT TIME ZONE 'UTC'
AS DATE
)
FROM DUAL;
Che produrrà la data 2016-11-24 14:20:52
(la rappresentazione UTC della data di input).