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

Actualzar hora timestamp con minutos y segundos a 0

Estas en el tema de Actualzar hora timestamp con minutos y segundos a 0 en el foro de Mysql en Foros del Web. Buenas, Estoy usando la función now() para actualizar la hora con la actual en un campo timestamp, pero necesito que los minutos y segundos sean ...
  #1 (permalink)  
Antiguo 14/08/2011, 19:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 56
Antigüedad: 16 años, 2 meses
Puntos: 1
Actualzar hora timestamp con minutos y segundos a 0

Buenas,

Estoy usando la función now() para actualizar la hora con la actual en un campo timestamp, pero necesito que los minutos y segundos sean 00 ya que en realidad lo que quiero es que compare, en otra función, con las horas en punto y desprecie los minutos y segundos.

Me podéis ayudar con esto?

Muchas gracias!!!
  #2 (permalink)  
Antiguo 15/08/2011, 06: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: Actualzar hora timestamp con minutos y segundos a 0

Usa CURDATE() en lugar de NOW().
MySQL realiza una conversión implícita de DATE a DATETIME cuando realizas una operación así, porque siempre modifica el valor de menor representación para adaptarlo al de mayor rango.
En este caso, si asignas un DATE a un campo de fecha y hora, convertirá el dato a DATETIME, pero como el dato de origen no tiene horas, le pone el valor de horas en cero... que es precisamente lo que quieres hacer.

Veamos:

Código MySQL:
Ver original
  1. mysql> DROP TABLE IF EXISTS `tabla`;
  2. Query OK, 0 rows affected (0.02 sec)
  3.  
  4. mysql> CREATE TABLE  `tabla` (
  5.     ->   `dia` timestamp NULL
  6.     -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  7. Query OK, 0 rows affected (0.01 sec)
  8.  
  9. mysql> INSERT INTO TABLA
  10.     ->       VALUES(CURDATE()), (NOW()), (CURDATE());
  11. Query OK, 3 rows affected (0.00 sec)
  12. Records: 3  Duplicates: 0  Warnings: 0
  13.  
  14. mysql> SELECT * FROM TABLA v;
  15. +---------------------+
  16. | dia                 |
  17. +---------------------+
  18. | 2011-08-15 00:00:00 |
  19. | 2011-08-15 09:18:07 |
  20. | 2011-08-15 00:00:00 |
  21. +---------------------+
  22. 3 rows in set (0.00 sec)

¿Se ve claramente?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 15/08/2011 a las 06:18
  #3 (permalink)  
Antiguo 15/08/2011, 07:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 56
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Actualzar hora timestamp con minutos y segundos a 0

Me he debido explicar mal, la hora si la necesito, lo que no quiero son los minutos y segundos.

Gracias!
  #4 (permalink)  
Antiguo 15/08/2011, 08:03
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: Actualzar hora timestamp con minutos y segundos a 0

Entonces genera una cadena con el formato de un datetime y con los valores de minutos y segundos en cero...
Un modo sería:
Código MySQL:
Ver original
  1. mysql> SELECT TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00')) FECHA;
  2. +---------------------+
  3. | FECHA               |
  4. +---------------------+
  5. | 2011-08-15 11:00:00 |
  6. +---------------------+
  7. 1 row in set (0.00 sec)

Es nada más que buscar qué funciones de fecha y hora de MySQL te conviene usar.
__________________
¿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 15/08/2011, 08:12
 
Fecha de Ingreso: febrero-2008
Mensajes: 56
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Actualzar hora timestamp con minutos y segundos a 0

Muchísimas gracias, gnzsoloyo!!! Me has ayudado un montón!!!

Etiquetas: minutos, segundos, timestamp
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 01:24.