Speichern von timestamps in mySQL
Ich erinnere mich, ich habe irgendwo gelesen, dass die mySQL-timestamp-Datentyp wird verwendet, um automatisch aktualisiert, wenn die Zeile aktualisiert, ist das wahr?
Muss ich speichern Zeitstempel mit timestamp-Datentyp oder vom Datentyp bigint zum Beispiel?
NB: der Zeitstempel, der gelagert werden muss, wird nicht generiert, von mySQL, es ist ein vordefinierter Wert, der generiert wird, mit PHP.
Dank.
- Sie wollen, dass, wenn die Zeile aktualisiert wird das timestamp-Feld wird automatisch aktualisiert .
InformationsquelleAutor medk | 2011-06-29
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Spalte vom Typ
TIMESTAMP
kann festgelegt werden, automatisch aktualisieren mitON UPDATE CURRENT_TIMESTAMP
in der Spalte definition.Wird dies jedoch nicht zum Auffüllen auf einfügen eines Datensatzes. Wie Sie gesagt haben, Sie bauen ein timestamp in PHP (format:
YYYY-MM-DD HH:MM:SS
) und fügen Sie es, oder Sie können eine andere Spalte AttributDEFAULT CURRENT_TIMESTAMP
in der Spalte definition.Weitere Informationen: MySQL: TIMESTAMP-Eigenschaften
UPDATE:
Wenn ein unix-timetstamp Wert ist die erforderliche Leistung, speichern Sie den Wert mit
TIMESTAMP
und dann Holen Sie sich die unix-Wert mit:Einfügen mit einem unix-timestamp, die Sie verwenden können
FROM_UNIXTIME()
ok, ich denke, dies ist behoben.
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html
den Wert null timestamp sieht aus wie diese '0000-00-00 00:00:00', so kann es nicht gespeichert werden, der einen unix-timestamp wie diese : 1309347278, so muss es sein BIGINT.
Dank.
TIMESTAMP
ist intern mit einer UNIX-timetstamp. MySQL-Funktionen sind verfügbar, um die unix-Wert. Wenn Sie möchten, dass die automatische update-Funktionalität, die Verwendung von TIMESTAMP und Abfrage für den unix-timestamp mitUNIX_TIMESTAMP()
int(11)
.Die richtige Antwort ist
int(11)
, weil ein Zeitstempel ist eine big/large integer.aus MySQL-manual:
Ja.
Timestamp ist ein Datentyp. Verwenden Sie es wie
latest_update TIMESTAMP(8)
wenn Sie die Tabelle erstellen.