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

Duda al cuardar la hora en mysql

Estas en el tema de Duda al cuardar la hora en mysql en el foro de Mysql en Foros del Web. Hola! buen dia a todos!, bueno tengo el siguiente problema... quiero que en mysql me almacene en el campo "hora" la hora pero con am ...
  #1 (permalink)  
Antiguo 02/09/2010, 08:55
 
Fecha de Ingreso: agosto-2010
Mensajes: 147
Antigüedad: 13 años, 8 meses
Puntos: 1
Pregunta Duda al cuardar la hora en mysql

Hola! buen dia a todos!, bueno tengo el siguiente problema... quiero que en mysql me almacene en el campo "hora" la hora pero con am o pm... todo lo jalo desde php... el tipo del campo le pude "time"... no se como hacerlo, espero alguien pueda ayudarme...

en php tengo esto:

Código PHP:
Ver original
  1. <?php date_default_timezone_set('America/Mexico_City'); echo date ("g:i:s a"); ?>

de ante mano gracias!!!
  #2 (permalink)  
Antiguo 02/09/2010, 09:42
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, 5 meses
Puntos: 2658
Respuesta: Duda al cuardar la hora en mysql

No tiene ninguna utilidad guardar en la base de datos la información de esa forma. Lo único que logras es desperdiciar espacio y complicar las consultas a responder. Hay razones de peso por las cuales existe una estructura llamada TIME...

Lo que te conviene es usar campos TIME y dejar el tema de AM o PM para resolverlo en la aplicación o bien en una consulta de salida.

A fin de cuentas, para obtener lo que quieres solamente debes usar TIME_FORMAT():

Código MySQL:
Ver original
  1. mysql> SELECT TIME_FORMAT('23:34:09', '%r');
  2. +-------------------------------+
  3. | TIME_FORMAT('23:34:09', '%r') |
  4. +-------------------------------+
  5. | 11:34:09 PM                   |
  6. +-------------------------------+
  7. 1 row in set (0.00 sec)

En caso de usar VARCHAR, estarías usando dos veces más espacio para guardar la información y además no podrías usarla en una consulta sin usar funciones de conversión específicas...
__________________
¿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 02/09/2010, 09:46
 
Fecha de Ingreso: abril-2008
Mensajes: 22
Antigüedad: 16 años
Puntos: 0
Respuesta: Duda al cuardar la hora en mysql

Hola Dianays

El Tipo de Dato TIME solo soporta 24 Horas es decir 13:20 es la "1:30" es decir que no soporta las 12 horas que usamos en Latino América..!!

http://dev.mysql.com/doc/refman/5.0/es/date-and-time-functions.html

En Mysql existe una función llamada
TIME_FORMAT(time,format)

Ejemplo

select TIME_FORMAT(CURRENT_TIME,'%h:%i %p');
+--------------------------------------+
| TIME_FORMAT(CURRENT_TIME,'%h:%i %p') |
+--------------------------------------+
| 10:19 AM |
+--------------------------------------+

select TIME_FORMAT('13:24','%h:%i %p');
+---------------------------------+
| TIME_FORMAT('13:24','%h:%i %p') |
+---------------------------------+
| 01:24 PM |
+---------------------------------+

Si deseas almacenar el tiempo como quieres debes crear un campo varchar(8)
o con el campo TIME puedes hacer lo siguiente

//Creo la tabla hora con un campo hora de tipo TIME
CREATE TABLE hora (hora TIME);

//Inserta la hora actual
INSERT INTO hora VALUES(CURRENT_TIME);

//Para Jalar el Dato en Formato de 12 Horas AM o PH
select TIME_FORMAT(hora,'%h:%i %p') from hora;
+------------------------------+
| TIME_FORMAT(hora,'%h:%i %p') |
+------------------------------+
| 10:44 AM |
+------------------------------

Espero que te ayude..!! Saludos
  #4 (permalink)  
Antiguo 02/09/2010, 10:38
 
Fecha de Ingreso: agosto-2010
Mensajes: 147
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Duda al cuardar la hora en mysql

es decir que el tipo "time" almacena de 24hrs en mysql??? pero en php muestra hora 12hrs...
  #5 (permalink)  
Antiguo 02/09/2010, 12:12
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, 5 meses
Puntos: 2658
Respuesta: Duda al cuardar la hora en mysql

Cita:
Iniciado por dianays Ver Mensaje
es decir que el tipo "time" almacena de 24hrs en mysql??? pero en php muestra hora 12hrs...
Eso es problema de cómo uses las variables en PHP, no es asunto de MySQL. MySQL forzosamente te debe estar devolviendo bien el dato, pero si PHP no lo interpreta o no lo grafica bien es que estás usando incorrectamente las funciones de representación de fechas.

Consulta el problema en el Foro de PHP
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 10/09/2010, 12:57
 
Fecha de Ingreso: agosto-2010
Mensajes: 147
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Duda al cuardar la hora en mysql

Gracias a Todos!!!! ia pude resolver el problemas.... gracias!!!!!!!!!!!

Etiquetas: Ninguno
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:57.