sql >> Databasteknik >  >> RDS >> Oracle

ORA-01821:datumformat inte igenkänd fel för ISO 8601 datum med lokal tid

Du har två problem:TO_DATE inte känner igen några tidszonskomponenter eller bråkdelar av sekunder, du måste konvertera den till tidsstämpel med tidszon och .s är det inte hur du representerar bråkdelar i alla fall, du behöver .ff . De giltiga formatmodellerna visas i dokumentationen .

Att sätta ihop dessa kan du göra:

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                                             

Om du verkligen vill ha det som ett datum måste du bestämma vad du ska göra med tidszonsinformationen - anta antingen att det är lokal tid (egentligen ignorera det), eller konvertera till UTC eller någon annan tidszon. Du kanske verkligen vill behålla det som en tidsstämpel med tidszon.



  1. PostgreSQL - kolumnvärde ändrat - välj sökningsoptimering

  2. Anslut din ASP.NET kärnapplikation till en lokal instans av SQLServer

  3. Hur kopierar man endast de första 4000 tecknen från Oracle NCLOB till NVARCHAR2(4000)-värde?

  4. Fråga om antalet objekt i ett träd