Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] Introducir fecha y hora en una tabla

Estas en el tema de Introducir fecha y hora en una tabla en el foro de Oracle en Foros del Web. Tengo una tabla con un par de valores DATE: CREATE TABLE Horarios ( "hora_apertura" DATE, "hora_cierre" DATE, ); El problema viene a la hora de ...
  #1 (permalink)  
Antiguo 06/03/2013, 08:12
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 8 meses
Puntos: 2
Introducir fecha y hora en una tabla

Tengo una tabla con un par de valores DATE:

CREATE TABLE Horarios (
"hora_apertura" DATE,
"hora_cierre" DATE,
);

El problema viene a la hora de introducir un valor para "hora_apertura" y "hora_cierre", puesto que lo que quiero es que estos valores sean en forma de hora ('10:00','HH24:MI', por ejemplo)

Sin embargo, al insertar un valor:

INSERT INTO Horarios VALUES (TO_DATE('10:00','HH24:MI'), TO_DATE('2:00', 'HH24:MI'));

En vez de aparecerme la hora en la tabla, me sale una fecha DD/MM/YYYY y lo que quiero es que en la tabla aparezca la hora HH24:MI

¿Cómo lo soluciono?
  #2 (permalink)  
Antiguo 06/03/2013, 08:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Introducir fecha y hora en una tabla

Tipo de dato equivocado.
En MySQL un DATE no almacena horas, sólo fechas. Tienes que usar el tipo TIME:
Código MySQL:
Ver original
  1. CREATE TABLE Horarios (
  2. hora_apertura TIME,
  3. hora_cierre TIME
  4. );
Por otro lado, las funciones TO_DATE y los formatos de tipo "HH24:MI" no pertenecen a MySQL, sino a Oracle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/03/2013, 08:24
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Introducir fecha y hora en una tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Tipo de dato equivocado.
En MySQL un DATE no almacena horas, sólo fechas. Tienes que usar el tipo TIME:
Código MySQL:
Ver original
  1. CREATE TABLE Horarios (
  2. hora_apertura TIME,
  3. hora_cierre TIME
  4. );
Por otro lado, las funciones TO_DATE y los formatos de tipo "HH24:MI" no pertenecen a MySQL, sino a Oracle.
Estoy trabajando con Oracle SQL Developer y me exigen que "hora_apertura" y "hora_cierre" sean de tipo DATE.

Me han dicho que con la funcion TO_CHAR se puede hacer pero no encuentro el cómo.
  #4 (permalink)  
Antiguo 06/03/2013, 08:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Introducir fecha y hora en una tabla

Entonces estás en el foro equivocado.
MySQL pertenece a la empresa Oracle, pero no es el mismo DBMS.

Paso tu post al foro correcto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/03/2013, 08:32
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Introducir fecha y hora en una tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Entonces estás en el foro equivocado.
MySQL pertenece a la empresa Oracle, pero no es el mismo DBMS.

Paso tu post al foro correcto.
Fallo mio. Mil gracias.
  #6 (permalink)  
Antiguo 06/03/2013, 08:37
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Introducir fecha y hora en una tabla

janoasgv... entiendo que trabajas con Oracle.

Hay dos cosas:
Una cosa es lo que está almacenado y otra lo que muestra por defecto.
Código SQL:
Ver original
  1. SELECT TO_DATE('10:00','HH24:MI') FROM dual;
Aca llevas una hora, pero el simple select te lo muestra como fecha.

Código SQL:
Ver original
  1. SELECT TO_CHAR(TO_DATE('10:00','HH24:MI'),'HH24:MI') FROM dual;
Aca llevas lo mismo, pero le estas dando un formato a tu salida.

La primera no quiere decir que no guarde las 10:00 simplemente nno se muestra con el select.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 06/03/2013, 08:43
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Introducir fecha y hora en una tabla

He intentado poner en práctica lo que me has dicho:
Código SQL:
Ver original
  1. INSERT INTO Horarios VALUES (TO_CHAR(TO_DATE('10:00','HH24:MI'),'HH24:MI'), TO_CHAR(TO_DATE('2:00','HH24:MI'),'HH24:MI'));
Pero me salta el siguiente error:

Código SQL:
Ver original
  1. Error que empieza en la línea 1 del comando:
  2. INSERT INTO Horarios VALUES (TO_CHAR(TO_DATE('10:00','HH24:MI'),'HH24:MI'), TO_CHAR(TO_DATE('2:00','HH24:MI'),'HH24:MI'))
  3. Informe de error:
  4. Error SQL: ORA-01843: mes no válido
  5. 01843. 00000 -  "not a valid month"

Última edición por gnzsoloyo; 06/03/2013 a las 08:51 Razón: SQL mal etiquetado. Usar Highlight "SQL"
  #8 (permalink)  
Antiguo 06/03/2013, 08:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Introducir fecha y hora en una tabla

¿Por qué estás poniendo ese TO_CHAR() en el INSERT?
Código SQL:
Ver original
  1. INSERT INTO Horarios
  2. VALUES (TO_DATE('10:00','HH24:MI'), TO_DATE('2:00','HH24:MI'));
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 06/03/2013, 08:54
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Introducir fecha y hora en una tabla

Deja el insert tal cual
Código SQL:
Ver original
  1. INSERT INTO Horarios VALUES (TO_DATE('10:00','HH24:MI'), TO_DATE('2:00', 'HH24:MI'));

Pero consultalo asi:
Código SQL:
Ver original
  1. SELECT TO_CHAR(hora_apertura,'HH24:MI'),TO_CHAR(hora_cierre,'HH24:MI') FROM Horarios;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #10 (permalink)  
Antiguo 06/03/2013, 09:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Introducir fecha y hora en una tabla



Respuesta en paralelo...

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 06/03/2013, 09:28
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Introducir fecha y hora en una tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje


Respuesta en paralelo...

__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: fecha, insert, introducir, mysql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:30.