Heim > Datenbank > MySQL-Tutorial > Was ist der Unterschied zwischen den MySQL-Datentypen DATETIME und TIMESTAMP?

Was ist der Unterschied zwischen den MySQL-Datentypen DATETIME und TIMESTAMP?

王林
Freigeben: 2023-09-17 23:41:03
nach vorne
1295 Leute haben es durchsucht

MySQL DATETIME 和 TIMESTAMP 数据类型有什么区别?

Beide Datentypen speichern Daten im Format „JJJJ-MM-TT HH:MM:SS“ und enthalten Datum und Uhrzeit. Trotz dieser Ähnlichkeiten weisen sie die folgenden Unterschiede auf:

  • Range – Der datetime-Datentyp unterstützt Datums- und Uhrzeitangaben zwischen 1000 – 01-01 00:00:00 und 9999-12-31 23:59:59. Der Zeitstempel-Datentyp unterstützt jedoch Datums- und Uhrzeitangaben zwischen „1970-01-01 00:00:01“ und „2038-01-19 08:44:07“.
  • Größe – Datetime erfordert 5 Bytes plus 3 zusätzliche Bytes für die Datenspeicherung in Sekundenbruchteilen. Andererseits erfordert der Zeitstempel-Datentyp 4 Bytes plus 3 zusätzliche Bytes für die Datenspeicherung in Sekundenbruchteilen. Aber vor MySQL 5.6.4 benötigte DateTime 8 Bytes plus 3 zusätzliche Bytes für die Datenspeicherung in Sekundenbruchteilen.
  • Konvertierung von einer Zeitzone in eine andere - Tatsächlich werden in MySQL5+ Zeitstempelwerte von der aktuellen Zeit in UTC und umgekehrt konvertiert, während Datetime keiner Konvertierung unterzogen wird.
  • Indexierung – Zeitstempeldaten können indiziert werden, Datum/Uhrzeit-Daten jedoch nicht.
  • Indexierung – Zeitstempeldaten können indiziert werden, Datum/Uhrzeit-Daten jedoch nicht. li>
  • Abfrage-Cache – Abfragen des Datentyps „Zeitstempel“ können zwischengespeichert werden, Abfragen des Datentyps „Datum/Uhrzeit“ können jedoch nicht zwischengespeichert werden. 🔜 und haben Die Ergebnisse für Tabellen vom Datentyp TIMESTAMP haben sich ebenfalls geändert.
  • mysql> Create table test_datetime(time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
    Query OK, 0 rows affected (0.44 sec)
    
    mysql> INSERT INTO test_datetime (time) values (CURRENT_TIMESTAMP);
    Query OK, 1 row affected (0.04 sec)
    
    mysql> Select * from test_datetime;
    +---------------------+
    | time                |
    +---------------------+
    | 2017-11-14 17:29:03 |
    +---------------------+
    1 row in set (0.00 sec)
    
    mysql> Create table test_timestamp(time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
    Query OK, 0 rows affected (0.64 sec)
    
    mysql> INSERT INTO test_timestamp (time) values (CURRENT_TIMESTAMP);
    Query OK, 1 row affected (0.06 sec)
    
    mysql> Select * from test_timestamp;
    +---------------------+
    | time                |
    +---------------------+
    | 2017-11-14 17:29:50 |
    +---------------------+
    1 row in set (0.00 sec)
    Nach dem Login kopieren
Ausgabe

mysql> SET @@session.time_zone = '-5:00';
Query OK, 0 rows affected (0.00 sec)

mysql> Select * from test_timestamp;
+---------------------+
| time                |
+---------------------+
| 2017-11-14 06:59:50 |
+---------------------+
1 row in set (0.00 sec)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den MySQL-Datentypen DATETIME und TIMESTAMP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage