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

Wie kann ich eine Spalte erstellen, die die Zeit speichert, zu der diese Zeile in MySQL erstellt wurde?

Bearbeitete Antwort

Wenn Sie einen regulären TIMESTAMP verwenden möchten -Feld in MySQL erstellen Sie zuerst das Feld.

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

Sobald Sie das Feld eingerichtet haben, können Sie es in Ruhe lassen. Wenn Sie einen Datensatz einfügen, übergeben Sie null als Wert und es wird standardmäßig die aktuelle Zeit verwendet. Wenn Sie den Datensatz aktualisieren, wird die Uhrzeit angepasst.

Um die Uhrzeit aus dem TIMESTAMP zu erhalten Feld müssen Sie Ihre Auswahlabfrage ausführen und Ihre Ergebnisse erhalten. Zur Veranschaulichung würde dies in etwa so aussehen:

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

Da Sie einen TIMESTAMP haben Feld jetzt, übernimmt die Datenbank nicht nur die Verantwortung für die Aktualisierung mit der korrekten Uhrzeit, sondern Sie können jederzeit das $time->format() ändern -Methodenargument, um eine Zeichenkette mit Zeitdaten auf verschiedene Arten zu erzeugen.

Der Zeitstempel wird abstrahiert und Ihre Anwendung gewinnt an Flexibilität.

Win-Win, richtig?

Originalantwort

Erstellen Sie ein char(8) -Spalte in MySQL und senden Sie dann die Ausgabe eines Aufrufs an:

date("H:i:s");

Obwohl die Verwendung eines Zeitstempelfelds in MySQL optimal wäre, wenn man bedenkt, dass Sie es aktualisieren können, wenn mit dem Datensatz interagiert wird. Sie haben nicht um den gesamten Zeitstempel zu verwenden.