sql >> Base de Datos >  >> RDS >> Oracle

ORA-01821:error de formato de fecha no reconocido para fecha ISO 8601 con hora local

Tiene dos problemas:TO_DATE no reconoce ningún componente de zona horaria o fracciones de segundo, tendrá que convertirlo a marca de tiempo con zona horaria y .s no es como representas las fracciones de segundo de todos modos, necesitas .ff . Los modelos de formato válidos se muestran en la documentación .

Juntándolos puedes hacer:

SELECT TO_TIMESTAMP_TZ ('2015-08-26T05:46:30.488+0100',
 'YYYY-MM-DD"T"hh24:mi:ss.ffTZHTZM')
FROM DUAL;

TO_TIMESTAMP_TZ('2015-08-26T05:46:30.488+0100','YYYY-MM-DD"T"HH24:MI:SS.FFTZHTZ
-------------------------------------------------------------------------------
26-AUG-15 05.46.30.488000000 +01:00                                             

Si realmente lo desea como una fecha, deberá decidir qué hacer con la información de la zona horaria:suponga que es la hora local (esencialmente ignórela) o conviértala a UTC o alguna otra zona horaria. Sin embargo, es posible que desee mantenerlo como una marca de tiempo con zona horaria.