I want to convert the follow string to date:
2004-09-30 23:53:48,140000000
I tried:
to_date('#', 'YYYY-MM-DD HH24:MI:SS,FF9')
But PL/SQL keep throwing this error:
ORA-01821: date format not recognized.
FF9 is incorrect for Oracle, any suggestion?
Our application needs to get a date value including millisecond in PL/SQL packages,but the date datatype in Oracle doesn't support millisecond.
To_char formats a DATE into a string using the given format mask. To_date converts a STRING into a date using the format mask. Your client then displays that date using a format mask (set at session/instance level).
Instead, you need to use the TIMESTAMP datatype instead of the DATE datatype. The TIMESTAMP datatype has fractional seconds, as noted by the FF notation: 'DD-Mon-YYYY HH24:MI:SS.FF'
Oracle
stores only the fractions up to second in a DATE
field.
Use TIMESTAMP
instead:
SELECT TO_TIMESTAMP('2004-09-30 23:53:48,140000000', 'YYYY-MM-DD HH24:MI:SS,FF9') FROM dual
, possibly casting it to a DATE
then:
SELECT CAST(TO_TIMESTAMP('2004-09-30 23:53:48,140000000', 'YYYY-MM-DD HH24:MI:SS,FF9') AS DATE) FROM dual
I don't think you can use fractional seconds with to_date or the DATE type in Oracle. I think you need to_timestamp which returns a TIMESTAMP type.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With