Een Oracle DATE
gegevenstype heeft geen tijdzone - u hebt een TIMESTAMP WITH TIMEZONE
nodig gegevenstype:
SELECT TO_TIMESTAMP_TZ(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS TZR YYYY'
)
FROM DUAL
Als u wilt converteren naar een DATE
(en de tijdzone is altijd CET
) dan kun je gebruiken:
SELECT TO_DATE(
'Thu Nov 24 15:20:52 CET 2016',
'DY MON DD HH24:MI:SS "CET" YYYY'
)
FROM DUAL
Als je het wilt als een DATE
gegevenstype en om de tijdzone in de originele string te respecteren, moet u (1) deze converteren naar een TIMESTAMP WITH TIMEZONE
data type; (2) zet die waarde om naar een gestandaardiseerde tijdzone (hiervoor wordt vaak UTC gebruikt); dan (3) converteer dat naar een datum:
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;
Wat de datum 2016-11-24 14:20:52
. zal opleveren (de UTC-weergave van de invoerdatum).