Dê o comando
SHOW CREATE TABLE whatever
Então veja a definição de tabela .
Provavelmente tem uma linha assim
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
iniciar.
DEFAULT CURRENT_TIMESTAMP
significa que qualquer INSERT
sem uma configuração de carimbo de data/hora explícita usa a hora atual. Da mesma forma, ON UPDATE CURRENT_TIMESTAMP
significa que qualquer atualização sem um timestamp explícito resulta em uma atualização para o valor do timestamp atual. Você pode controlar esse comportamento padrão ao criar sua tabela.
Ou, se a coluna de carimbo de data/hora não foi criada corretamente, você pode alterá-la.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Isso fará com que as operações INSERT e UPDATE na tabela atualizem automaticamente sua coluna de carimbo de data/hora. Se você deseja atualizar
whatevertable
sem alterar o timestamp, ou seja, então você precisa emitir esse tipo de atualização.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Isso funciona com
TIMESTAMP
e DATETIME
colunas. (Antes da versão 5.6.5 do MySQL só funcionava com TIMESTAMP
s) Quando você usa TIMESTAMP
s, os fusos horários são considerados:em uma máquina servidora configurada corretamente, esses valores são sempre armazenados em UTC e convertidos para a hora local na recuperação.