horas en oracle

patricia
07 de Septiembre del 2004
si es posible, necesito saber como insertar solo la hora en un campo de tipo Date, sin que me pida todo dia, mes año

Pablo Ponte Miserendino
07 de Septiembre del 2004
Necesitas usar una máscara de Fecha....
De todas maneras si la columna es DATE te va a insertar un dia (probablemente o el dia de hoy o el primer dia de este siglo o algun dia de 1800) por eso te recomiendo usar una columna varchar2...
la mascara es sencilla usando un to_char:

To_Char(SYSDATE,'HH24:MI:SS') para sacar la hora de este dia con formato de 24hs con minutos y segundos....

Espero que te sirva...cualquier cosa escribime
Salu2

patricia
07 de Septiembre del 2004
gracias

es decir que una hora no se puede guardar en un campo tipo Date?

porque si es necesario hacer calculos, es complicado hacerlo con campo varchar2.
por ejemplo si se quiere contar las horas que hay en un intervalo de tiempo

Jorge-DBA
07 de Septiembre del 2004
Hola Te recomiendo que hagas la siguiente prueba:

SQL>create table TAB_FECHA (fecha date);

Tabla creada.

SQL>INSERT INTO TAB_FECHA ( FECHA ) VALUES (
TO_Date( '09/02/2004 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));

1 fila creada.

select * from TAB_FECHA;

FECHA
________
02/09/04

-- Ahora Si pones formato para saber fecha y hora sería el select asi:

SQL> SELECT TO_CHAR(fecha, 'DD-MON-YYYY:HH24MI') fecha
FROM tab_fecha;

FECHA
________________
02-SEP-2004:0000

-- Actualizaremos la hora de 12:00 am a 4:20 pm
con 20 seg

SQL> update TAB_FECHA set
fecha = (TO_Date( '09/02/2004 04:20:05 PM', 'MM/DD/YYYY HH:MI:SS PM'));

1 fila actualizada.

SQL>SELECT TO_CHAR(fecha, 'DD-MON-YYYY:HH24MI') fecha
FROM tab_fecha;

FECHA
________________
02-SEP-2004:1620

-- Ahora si solo quieres ver la hora:

SELECT TO_CHAR(fecha, 'HH24MI') Hora
FROM tab_fecha;

HORA
____
1620

commit;

Espero que te sirva esta información.


Saludos
Jorge Administrador de la base de datos.