sql >> Databáze >  >> Database Tools >> phpMyAdmin

Jak mohu vytvořit sloupec, který ukládá čas vytvoření tohoto řádku v mysql?

Upravená odpověď

Pokud chcete použít běžný TIMESTAMP pole v MySQL, nejprve pole vytvořte.

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

Jakmile nastavíte pole, můžete jej nechat být. Když vložíte záznam, předejte null jako hodnotu a výchozí bude aktuální čas. Když záznam aktualizujete, čas se upraví.

Chcete-li získat čas z TIMESTAMP pole, budete muset spustit výběrový dotaz a získat výsledky. Pro ilustrativní účely by to vypadalo asi takto:

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

Protože máte TIMESTAMP pole nyní nejen, že databáze převezme odpovědnost za aktualizaci ve správný čas, ale vždy můžete upravit $time->format() argument metody pro vytvoření řetězce s časovými údaji mnoha různými způsoby.

Časové razítko se abstrahuje a vaše aplikace získá flexibilitu.

Win-Win, že?

Původní odpověď

Vytvořte char(8) sloupec v MySQL a poté mu pošlete výstup z volání na:

date("H:i:s");

Ačkoli použití pole časového razítka v MySQL by bylo optimální, vezmeme-li v úvahu, že jej můžete nechat aktualizovat, když se záznamem interaguje. nemáte použít celé časové razítko.




  1. Nemohu se přihlásit do phpMyAdmin pomocí hesla root pro mySQL (na Mac OS X Lion)

  2. vzdálený phpmyadmin se nemůže přihlásit, ale klient mysql ano

  3. Zamrznutí spouštění SSMS SQL SERVER Management Studio 2012

  4. Wamp Server phpMyAdmin není v angličtině