2017-12-20 2 views
0

Ich benutze MySQL 5.7.20, Ubuntu 16.04.MySQL wie Speicher Timestamp

Meine Abfragen sind:

mysql> CREATE TABLE test (ts TIMESTAMP NULL); 

mysql> INSERT INTO test VALUES (1513776043); 

mysql> SELECT * FROM test; 
+---------------------+ 
| ts     | 
+---------------------+ 
| 0000-00-00 00:00:00 | 
+---------------------+ 

Wie Sie sehen, Zeitstempel nicht gespeichert. Wie speichere ich Timestamp in MySQL?

Antwort

2

Sie müssen es mit from_unixtime() konvertieren, da das ein Unix-Zeitstempel ist.

INSERT INTO test VALUES (FROM_UNIXTIME(1513776043)); 
+0

Die Funktion from_unitime hängt von der Zeitzone Ihres Servers ab, während der Zeitstempel nicht davon abhängt. Zum Beispiel: set time_zone = '+00: 00'; Wählen Sie FROM_UNIXTIME (1513776043); gibt 2017-12-20 13:20:43 zurück, setze time_zone = '+03: 00'; gibt zurück: 2017-12-20 16:20:43 –

+0

Ok, ich habe verstanden. MySQL speichert das Timestamp-Feld als Integer, und "UNIX_TIMESTAMP (ts) from test" auswählen, hängt nicht von der Zeitzone ab –