sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

¿Cómo puedo hacer una columna que almacene la hora en que se creó esa fila en mysql?

Respuesta editada

Si desea utilizar un TIMESTAMP regular campo en MySQL, primero cree el campo.

ALTER TABLE  `YourTable` ADD  `LastAccessed` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;

Una vez que haya configurado el campo, puede dejarlo solo. Cuando inserta un pase de registro null como el valor y se establecerá de forma predeterminada en la hora actual. Cuando actualice el registro, la hora se ajustará.

Para obtener la hora del TIMESTAMP necesitará ejecutar su consulta de selección y obtener sus resultados. Para fines ilustrativos, esto se parecería a lo siguiente:

//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.

Ya que tienes un TIMESTAMP ahora, la base de datos no solo se responsabilizará de actualizarlo con la hora correcta, sino que siempre puede modificar el $time->format() argumento del método para producir una cadena con datos de tiempo en una variedad de formas diferentes.

La marca de tiempo se abstrae y su aplicación gana flexibilidad.

Ganar-ganar, ¿verdad?

Respuesta original

Crea un char(8) columna en MySQL y luego enviarle el resultado de una llamada a:

date("H:i:s");

Aunque usar un campo de marca de tiempo en MySQL sería óptimo, considerando que puede actualizarlo cuando se interactúa con el registro. No tienes para usar la marca de tiempo completa.