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

como tendria que hacer para guardar hora en db

Estas en el tema de como tendria que hacer para guardar hora en db en el foro de Mysql en Foros del Web. Hola no se si lo estoy haciendo mal pero no me funciona, intento guardar en mi base de datos la hora pero no lo consigo ...
  #1 (permalink)  
Antiguo 13/11/2011, 19:28
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
como tendria que hacer para guardar hora en db

Hola no se si lo estoy haciendo mal pero no me funciona, intento guardar en mi base de datos la hora pero no lo consigo yo tengo un campo con el nombre hora y lo intente asin:

Código MySQL:
Ver original
  1. INSERT INTO tienda_online(hora)values(time());

el campo lo tengo tipo time y me sale 00:00:00, alguna ayuda de mi error, saludos.
  #2 (permalink)  
Antiguo 13/11/2011, 19:43
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: como tendria que hacer para guardar hora en db

Pregunta para leer en el manual de referencia:
Cita:
TIME(expr)

Extrae la parte de hora de la expresión hora o fecha/hora expr.

Código MySQL:
Ver original
  1. mysql> SELECT TIME('2003-12-31 01:02:03');
  2.         -> '01:02:03'
  3. mysql> SELECT TIME('2003-12-31 01:02:03.000123');
  4.         -> '01:02:03.000123'
Corresponde usar CURTIME():
Código MySQL:
Ver original
  1. INSERT INTO tienda_online(hora) VALUES(CURTIME());
__________________
¿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 14/11/2011, 05:51
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como tendria que hacer para guardar hora en db

hola gnzsoloyo la verdad que no entendi muy bien el curtime leyendo el manual me di cuenta que me faltaba el parametro del formato probe con dato asin:

Código MySQL:
Ver original
  1. date("h:i:s")

me dio una hora menos que en la de mi pais que es españa, esto a que es debido, alguna ayuda, estoy trabajando en modo local, osea que me tendria que dar la hora de mi portatil y me da una menos, saludos.

Última edición por roboty; 14/11/2011 a las 06:02 Razón: aclare que trabajo en modo local, saludos
  #4 (permalink)  
Antiguo 14/11/2011, 06:14
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: como tendria que hacer para guardar hora en db

CURTIME() es una función de MySQL que devuelve la hora del sistema o la hora local delusuario, según corresponda. Si lo leíste en el manual (para eso te pasé el link), debería ser suficientemente claro.
Respecto al DATE() que usas, eso es PHP, ten en cuenta que MySQL y PHP son cosas completamente independientes.

Mi solución está basada en el ejemplo que tu mismo pusiste, pero corrigiéndote la función usada.

Por cierto CURTIME es el acrónimo de CURRENT TIME...
__________________
¿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 14/11/2011, 06:43
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como tendria que hacer para guardar hora en db

Hola gnzsoloyo yo lo que probe que no me funciono fue esto:

Código MySQL:
Ver original
  1. INSERT INTO tienda_online(hora)VALUES(current_time());

no se si tengo mal el campo que cree en la bd lo tengo timpo time, el error que me muestra es que defina la funcion current_time, que hago mal?

esta insercion la hago desde php, por eso lo de date(), pero no se si es lo correcto.
saludos
  #6 (permalink)  
Antiguo 14/11/2011, 06:56
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: como tendria que hacer para guardar hora en db

Por empezar, ten cuidado con los espacios entre el nombre y el paréntesis de la función. Cuando usas alguna interfase del tipo Navigator, o phpMyadmin, estas suelen poner un espacio allí y eso hace que el MySQL no reconozca la función.

¿Podrías postear el mensaje que MySQL devuelve?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 14/11/2011, 07:10
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como tendria que hacer para guardar hora en db

Si claro gnzsoloyo el error es este, comprobe lo de los espacios pero estan bien.

Fatal error: Call to undefined function current_time() in C:\wamp\www\ejercicios\insertar.php on line 39
  #8 (permalink)  
Antiguo 14/11/2011, 07:30
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: como tendria que hacer para guardar hora en db

Cita:
Fatal error: Call to undefined function current_time() in C:\wamp\www\ejercicios\insertar.php on line 39
Esto es un error de PHP, no de MySQL...

¿Estás intentando usar CURRENT_TIME() dentro del PHP?
Si haces eso, estás haciendo mal.

Postea ese bloque del script completo...
__________________
¿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 14/11/2011, 07:36
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como tendria que hacer para guardar hora en db

Hola, gnzsoloyo este es el codigo que uso desde php para insertar la hora;

Código PHP:
Ver original
  1. $sql=insert into tienda_online(hora)VALUES(current_time());
  2. $consulta=mysql_query($sql,$conexion);

no es correcto utilizar una funcion de mysql para la hora que tendria que cambiarla por una funcion php como date();, espero que me puedas aclarar esto saludos.
  #10 (permalink)  
Antiguo 14/11/2011, 08:04
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: como tendria que hacer para guardar hora en db

Estás confudiendo el PHP con el SQL... Las sentecias de SQL van como cadenas de texto que el PHP envía usando la librería correspondiente al MySQL.

Busca un tutorial (en el Foro de PHP hay unos muy buenos) y fíjate cómo se hace.


Código PHP:
Ver original
  1. $sql="insert into tienda_online(hora)VALUES(current_time())";
  2. $consulta=mysql_query($sql,$conexion);
__________________
¿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 14/11/2011, 08:26
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 13 años
Puntos: 5
Respuesta: como tendria que hacer para guardar hora en db

gnzsoloyo lo postee mal pero si que tengo las comillas en mi codigo, bueno intentare buscar la solucion y si no lo hare con el objeto date de php, gracias por tu colaboracion y saludos.
  #12 (permalink)  
Antiguo 14/11/2011, 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, 5 meses
Puntos: 2658
Respuesta: como tendria que hacer para guardar hora en db

¿Probaste usando CURTIME()?

En el extremo, usa TIME(NOW()), que sería lo mismo.

Por cierto, ¿qué versión de MySQL estás usando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 13:22.