Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/08/2011, 06:12
Avatar de gnzsoloyo
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