Speichern von Zeitstempeln in mySQL

8

Ich erinnere mich, dass ich irgendwo gelesen habe, dass der Datentyp mySQL timestamp automatisch aktualisiert wird, wenn die Zeile aktualisiert wird, stimmt das?

Muss ich Zeitstempel mit Zeitstempel-Datentyp oder mit Bigint zum Beispiel speichern?

NB: Der Zeitstempel, der gespeichert werden muss, wird nicht von mySQL generiert, es ist ein vordefinierter Wert, der mit PHP generiert wird.

Danke.

    
medk 29.06.2011, 11:34
quelle

6 Antworten

13

Eine Spalte vom Typ TIMESTAMP kann so eingestellt werden, dass sie automatisch mit ON UPDATE CURRENT_TIMESTAMP in der Spaltendefinition aktualisiert wird.

Dies wird jedoch beim Einfügen eines Datensatzes nicht aufgefüllt. Wie Sie gesagt haben, können Sie einen Zeitstempel in PHP (Format: YYYY-MM-DD HH:MM:SS ) erstellen und einfügen, oder Sie können ein anderes Spaltenattribut von DEFAULT CURRENT_TIMESTAMP in der Spaltendefinition setzen.

Weitere Informationen: MySQL: TIMESTAMP-Eigenschaften

UPDATE: Wenn ein Unix-Timestamp-Wert die erforderliche Ausgabe ist, speichern Sie den Wert mit TIMESTAMP und erhalten Sie dann den Unix-Wert mit:

%Vor%

Um einen Unix-Zeitstempel einzufügen, können Sie FROM_UNIXTIME()

verwenden %Vor%     
Brendan Bullen 29.06.2011 11:40
quelle
5

ok Ich denke, das ist gelöst.

Ссылка

Ein Nullwert-Zeitstempel sieht folgendermaßen aus: '0000-00-00 00:00:00', daher kann er nicht zum Speichern eines Unix-Zeitstempels wie diesem verwendet werden: 1309347278, also muss er BIGINT sein.

Danke.

    
medk 29.06.2011 11:41
quelle
2
%Vor%     
rahularyansharma 29.06.2011 11:47
quelle
1

aus dem MySQL-Handbuch:

  

Standardmäßig wird die erste TIMESTAMP-Spalte in einer Tabelle automatisch auf Datum und Uhrzeit der letzten Operation gesetzt, wenn Sie ihr selbst keinen Wert zuweisen. Sie können auch eine TIMESTAMP-Spalte auf das aktuelle Datum und die aktuelle Uhrzeit setzen, indem Sie ihr einen NULL-Wert zuweisen.

    
nobody 29.06.2011 11:47
quelle
1
  

Ich erinnere mich, dass ich irgendwo gelesen habe, dass der Datentyp mySQL timestamp automatisch aktualisiert wird, wenn die Zeile aktualisiert wird, stimmt das?

Ja.

  

Muss ich Zeitstempel mit Zeitstempel-Datentyp oder mit Bigint zum Beispiel speichern?

Timestamp ist ein Datentyp. Sie verwenden es wie latest_update TIMESTAMP(8) , wenn Sie die Tabelle erstellen.

    
joakimdahlstrom 29.06.2011 11:43
quelle
1

Die richtige Antwort lautet int(11) , da ein Zeitstempel eine große Ganzzahl ist.

    
Pedro Lobito 21.09.2017 22:49
quelle

Tags und Links