MySQL Timestamp: ¿por qué todos los ceros?
-
10-07-2019 - |
Pregunta
Estoy usando PHPMyAdmin y tengo una columna de tabla MySQL llamada "fecha y hora". El tipo (¡sorpresa!) Es TIMESTAMP
, y en 'atributos' lo he establecido en ON UPDATE CURRENT_TIMESTAMP
.
Sin embargo, cada nuevo registro tiene una marca de tiempo que se ve así:
0000-00-00 00:00:00
He establecido explícitamente el valor predeterminado en none, pero cuando guardo y vuelvo a buscar, se establece en todos los ceros como se indica arriba.
La página de registros PHP relevante impacta con esta consulta:
$query = "INSERT INTO `pagehit` (user_id, pageurl)
VALUES ('" . $userid . "', '" . $pageurl . "')";
Todo se está ejecutando bajo XAMPP.
¿Qué me estoy perdiendo?
Solución
¿Qué me estoy perdiendo?
No actualizas :)
Use DEFAULT CURRENT_TIMESTAMP
junto con ON UPDATE CURRENT_TIMESTAMP
Otros consejos
Intente establecer el valor predeterminado en CURRENT_TIMESTAMP
en lugar de ponerlo en los atributos.
Si su columna marca de tiempo
captura solo el tiempo de inserción, entonces use solo
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
De lo contrario, si es por tiempo de modificación, utilice de la siguiente manera
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
En mi caso funciona así:
En phpMyAdmin:
ALTER TABLE `name_table` ADD `name_row` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
En PHP sintax para la fila:
date('Y-m-d H:i:s')