Este equipo especializado despúes de varios días de trabajo y de recopilar de datos, hallamos la respuesta, nuestro deseo es que te resulte útil en tu proyecto.
Solución:
un oráculo DATE
no almacena tiempos con más precisión que un segundo. No puede almacenar datos de precisión de milisegundos en un DATE
columna.
Sus dos opciones son truncar el string de los milisegundos antes de convertirlo en un DATE
es decir
to_date( substr('23.12.2011 13:01:001', 1, 19), 'DD.MM.YYYY HH24:MI:SS' )
o para convertir el string en un TIMESTAMP
que admite precisión de milisegundos
to_timestamp( '23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3' )
TO_DATE admite la conversión al tipo de datos DATE, que no admite milisegundos. Si desea soporte de milisegundos en Oracle, debe consultar el tipo de datos TIMESTAMP y la función TO_TIMESTAMP.
Espero que ayude.
Puedes probar este formato SS.FF
por milisegundos:
to_timestamp(table_1.date_col,’DD-Mon-RR HH24:MI:SS.FF’)
Para más detalles:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions193.htm
Recuerda que puedes permitirte explicar tu experiencia si diste con el hallazgo.