Como se sacan los milisengundos en un to_char???

Su
30 de Marzo del 2004
Buenas!!
alguien sabe sacar los milisegundos en una select con un to_char?????

Muchas gracias!
Susana

Mikel
30 de Marzo del 2004
Creo que los datos tipo Date de Oracle guardan la fecha y la hora, pero solamente horas, minutos y segundos. Creo que los milisegundos no los guarda. He buscado en mis apuntes los distintos formatos para las funciones to_date y to_char y tienen las siguientes opciones:

YYYY - Año en cuatro cifras
YY - Dos últimas cifras del año
YEAR - Año en letras
MM - Mes del 1 al 12
MON - Tres primeras letras del Mes
MONTH - Mes en letras
WW - Semana de año
W - Semana del mes
DDD - Día del año
DD - Día del mes
D - Día de la semana
DAY - Día de la semana en letras
J - El número del día desde el comienzo de la era (Fecha Juliana)
HH - Hora
HH24 - Hora en formato de 24 horas
MI - Minutos
SS - Segundos

Yo una vez tuve que guardar los milisegundos e hice lo siguiente (en Visual Basic .NET):

- Coger la fecha/hora del sistema en una variable (VarFecha = now; VarMili = now.milisecond)
- Guardar la fecha y la hora, minutos y segundos en una columna de la tabla tipo date
- Guardar los milisegundos en una columna de tipo integer

Yo que tu haría esto mismo, aunque tal vez haya alguna manera más correcta de hacerla, pero no creo que el tipo de datos date de oracle no lo admite.

Saludos desde Euskal Herria

Mikel

guru_oracle
30 de Marzo del 2004
Los milisegundos se recuperan poniendo 4 "s" a los segundos.

Ejemplo :select to_char(sysdate,'dd-mm-yy hh-mm-ssss') from dual;

Salu2

Mikel
30 de Marzo del 2004
Si se ponen 4 'S' no obtenemos los milisegundos, sino dos veces los segundos.

Es decir si ejecutamos esta orden a las 9h. 3' 17" nos devuelve lo siguiente: '25-03-04 09-03-1717' ya que nos devuelve dos veces los segundos.

Saludos.

Mikel