phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Comment puis-je créer une colonne qui stocke l'heure à laquelle cette ligne a été créée dans mysql ?

Réponse modifiée

Si vous souhaitez utiliser un TIMESTAMP normal champ dans MySQL, créez d'abord le champ.

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

Une fois que vous avez configuré le champ, vous pouvez le laisser seul. Lorsque vous insérez une passe d'enregistrement null comme valeur et il sera par défaut à l'heure actuelle. Lorsque vous mettez à jour l'enregistrement, l'heure sera ajustée.

Pour obtenir l'heure à partir du TIMESTAMP champ, vous devrez exécuter votre requête de sélection et obtenir vos résultats. À des fins d'illustration, cela ressemblerait à ceci :

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

Puisque vous avez un TIMESTAMP champ maintenant, non seulement la base de données se chargera de le mettre à jour avec l'heure correcte, mais vous pouvez toujours modifier le $time->format() l'argument de la méthode pour produire une chaîne avec des données temporelles de différentes manières.

L'horodatage est abstrait et votre application gagne en flexibilité.

Gagnant-gagnant, non ?

Réponse originale

Créer un char(8) colonne dans MySQL, puis envoyez-lui la sortie d'un appel à :

date("H:i:s");

Bien que l'utilisation d'un champ d'horodatage dans MySQL soit optimale, étant donné que vous pouvez le mettre à jour lorsque l'enregistrement interagit avec. Vous n'avez pas pour utiliser l'horodatage complet.