phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Como posso fazer uma coluna que armazene a hora em que a linha foi criada no mysql?

Resposta editada


Se você quiser usar um TIMESTAMP normal campo no MySQL, primeiro crie o campo.
ALTER TABLE  `YourTable` ADD  `LastAccessed` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;

Depois de configurar o campo, você pode deixá-lo sozinho. Ao inserir um registro passe null como o valor e o padrão será a hora atual. Quando você atualizar o registro, o tempo será ajustado.

Para obter a hora do TIMESTAMP você precisará executar sua consulta de seleção e obter seus resultados. Para fins ilustrativos, isso seria algo como o seguinte:
//Integrate this into your existing code
$result = mysqli_query($connection, "SELECT LastAccessed FROM YourTable"); //get only the time field for this example
$row = mysqli_fetch_array($result);
$time = new DateTime($row['LastAccessed']); //The constructor accepts the time information as an argument
echo $time->format("H:i:s"); //This is your time information.

Como você tem um TIMESTAMP campo agora, não apenas o banco de dados assumirá a responsabilidade de atualizá-lo com a hora correta, mas você sempre poderá modificar o $time->format() argumento do método para produzir uma string com dados de tempo de várias maneiras diferentes.

O carimbo de data/hora é abstraído e seu aplicativo ganha flexibilidade.

Ganha-ganha, certo?

Resposta Original


Crie um char(8) coluna no MySQL e, em seguida, envie a saída de uma chamada para:

date("H:i:s");

Embora o uso de um campo de carimbo de data e hora no MySQL seja ideal, considerando que você pode atualizá-lo quando o registro for interagido. Você não tem para usar todo o carimbo de data/hora.