Une DATE
Oracle le type de données n'a pas de fuseau horaire - vous avez besoin d'un TIMESTAMP WITH TIMEZONE
type de données :
SELECT TO_TIMESTAMP_TZ(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS TZR YYYY'
)
FROM DUAL
Si vous souhaitez convertir en DATE
(et la région du fuseau horaire est toujours CET
) alors vous pouvez utiliser :
SELECT TO_DATE(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS "CET" YYYY'
)
FROM DUAL
Si vous le voulez comme DATE
type de données et pour respecter le fuseau horaire dans la chaîne d'origine, vous devrez (1) le convertir en un TIMESTAMP WITH TIMEZONE
Type de données; (2) convertir cette valeur en un fuseau horaire normalisé (UTC est souvent utilisé pour cela) ; puis (3) convertissez-le en une date :
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;
Ce qui affichera la date 2016-11-24 14:20:52
(la représentation UTC de la date d'entrée).