sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

Hur kan jag skapa en kolumn som lagrar tiden som raden skapades i mysql?

Redigerat svar

Om du vill använda en vanlig TIMESTAMP fältet i MySQL, skapa först fältet.

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

När du har ställt in fältet kan du lämna det ifred. När du infogar ett postpass null som värdet och den kommer som standard till den aktuella tiden. När du uppdaterar posten kommer tiden att justeras.

För att hämta tiden från TIMESTAMP fältet måste du köra din urvalsfråga och få dina resultat. I illustrativt syfte skulle detta se ut ungefär så här:

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

Eftersom du har en TIMESTAMP fältet nu, kommer databasen inte bara att ta ansvar för att uppdatera den med rätt tid, utan du kan alltid ändra $time->format() metodens argument för att producera en sträng med tidsdata på en mängd olika sätt.

Tidsstämpeln abstraheras och din applikation får flexibilitet.

Win-Win, eller hur?

Originalt svar

Skapa en char(8) kolumn i MySQL och skicka sedan utdata från ett anrop till:

date("H:i:s");

Även om det skulle vara optimalt att använda ett tidsstämpelfält i MySQL, med tanke på att du kan få det att uppdatera när posten interageras med. Du har inte för att använda hela tidsstämpeln.




  1. Relationsproblem i MySql-designern

  2. hur man väljer de 5 senaste raden från min mysql

  3. Teradata i DBeaver:Specialtillägg

  4. Vad är egentligen orsaken till att PHP MySQL-biblioteksversionen skiljer sig från din MySQL-serverversion?