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

Come posso creare una colonna che memorizza l'ora in cui è stata creata la riga in mysql?

Risposta modificata

Se vuoi usare un normale TIMESTAMP campo in MySQL, prima crea il campo.

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

Una volta impostato il campo, puoi lasciarlo da solo. Quando inserisci un record, passa null come valore e verrà impostato automaticamente sull'ora corrente. Quando aggiorni il record, l'ora verrà modificata.

Per ottenere l'ora dal TIMESTAMP campo sarà necessario eseguire la query di selezione e ottenere i risultati. A scopo illustrativo, sarebbe simile al seguente:

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

Dal momento che hai un TIMESTAMP campo ora, non solo il database si assumerà la responsabilità di aggiornarlo con l'ora corretta, ma puoi sempre modificare il $time->format() argomento del metodo per produrre una stringa con dati temporali in una varietà di modi diversi.

Il timestamp viene astratto e la tua applicazione guadagna flessibilità.

Win-Win, giusto?

Risposta originale

Crea un char(8) colonna in MySQL e quindi inviargli l'output di una chiamata a:

date("H:i:s");

Sebbene l'utilizzo di un campo timestamp in MySQL sarebbe ottimale, considerando che è possibile aggiornarlo quando si interagisce con il record. Non avete per utilizzare l'intero timestamp.