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?

王林
王林nach vorne
2023-09-17 23:41:031216Durchsuche

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)
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)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen