Da el comando SHOW CREATE TABLE whatever
Luego mire la definición de tabla .
Probablemente tenga una línea como esta
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
en eso. DEFAULT CURRENT_TIMESTAMP
significa que cualquier INSERT
sin una configuración de marca de tiempo explícita utiliza la hora actual. Del mismo modo, ON UPDATE CURRENT_TIMESTAMP
significa que cualquier actualización sin una marca de tiempo explícita da como resultado una actualización del valor actual de la marca de tiempo.
Puede controlar este comportamiento predeterminado al crear su tabla.
O bien, si la columna de marca de tiempo no se creó correctamente en primer lugar, puede cambiarla.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Esto hará que las operaciones INSERTAR y ACTUALIZAR en la tabla actualicen automáticamente su columna de marca de tiempo. Si desea actualizar whatevertable
sin cambiar la marca de tiempo, es decir,
entonces necesita emitir este tipo de actualización.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Esto funciona con TIMESTAMP
y DATETIME
columnas (Antes de la versión 5.6.5 de MySQL, solo funcionaba con TIMESTAMP
s) Cuando usas TIMESTAMP
s, las zonas horarias se tienen en cuenta:en una máquina de servidor configurada correctamente, esos valores siempre se almacenan en UTC y se traducen a la hora local al recuperarlos.