DATETIME vs. TIMESTAMP in MySQL

Mehvish Ashiq 15 Februar 2024
  1. Ähnlichkeiten von DATETIME und TIMESTAMP
  2. Unterschiede von DATETIME und TIMESTAMP
  3. Beispiel zum Verständnis der Verwendung von DATETIME und TIMESTAMP in MySQL
  4. Fazit
DATETIME vs. TIMESTAMP in MySQL

DATETIME und TIMESTAMP sind zwei verschiedene Datentypen, die Sie verwenden können, um einen Wert zu speichern, der den Datums- und Zeitteil enthalten muss.

In diesem Artikel erfahren wir mehr über das Format, in dem es in der Datenbank gespeichert wird, und den für jeden Datentyp erforderlichen Speicherplatz. Wir werden uns auch die Ähnlichkeiten und Unterschiede von beiden Datentypen ansehen und versuchen, sie anhand eines Beispiels zu verstehen.

Ähnlichkeiten von DATETIME und TIMESTAMP

DATETIME und TIMESTAMP haben einige Ähnlichkeiten, die unten aufgeführt sind:

  • Beide speichern den gleichen Datentyp und bestehen aus zwei Teilen (Datum und Uhrzeit).
  • Beide haben bei der Abfrage das gleiche Format.
  • Das Format für die Speicherung in der Datenbank ist gleich (JJJJ-MM-TT hh:mm:ss).
  • Beide benötigen zusätzliche Bytes für Sekundenbruchteilgenauigkeit.
  • Wann immer Datensätze aktualisiert werden, können beide Daten mit dem aktuellen Datum und der aktuellen Uhrzeit ändern.

Unterschiede von DATETIME und TIMESTAMP

DATETIME und TIMESTAMP haben folgende Unterschiede:

  • DATETIME und TIMESTAMP benötigen 5 Bytes bzw. 4 Bytes.
  • TIMESTAMP wird von der Zeitzone beeinflusst, aber DATETIME bleibt konstant.
  • Unterstützte Bereiche für DATETIME und TIMESTAMP sind '1000-01-01 00:00:00' bis '9999-12-31 23:59:59' und '1970-01-01 00:00:01'UTC bis '2038-01-19 03:14:07' UTC.
  • DATETIME kann nicht indiziert werden, während TIMESTAMP es sein kann.
  • Abfragen mit TIMESTAMP werden zwischengespeichert, bei DATETIME ist dies nicht der Fall.

Beispiel zum Verständnis der Verwendung von DATETIME und TIMESTAMP in MySQL

Nehmen wir an, Sie betreiben ein Café in Ihrem Land. Jeder Kunde erhält nach Bezahlung der Rechnung eine Rechnung.

Diese Rechnung hat neben anderen Details ein Datum und eine Uhrzeit. Da Sie den Shop nur in Ihrem Land betreiben, in dem sich alle Ihre Kunden in derselben Zeitzone befinden, verwenden Sie DATETIME.

Ändern wir dieses Szenario ein wenig; Sie haben jetzt zehn Cafés in verschiedenen Ländern, jedes Land hat seine Zeitzone. Die Kunden erhalten dort auch Rechnungen, aber wie können Sie das Datum und die Uhrzeit entsprechend der Zeitzone der Kunden anzeigen?

Hier verwenden Sie TIMESTAMP. Wieso den? Da TIMESTAMP von der Zeitzone beeinflusst wird, wird der Wert von TIMESTAMP zur Speicherung von der aktuellen Zeitzone (Serverzeit) in UTC (Universal Time Zone) und zurück in die aktuelle Zeitzone (Serverzeit) konvertiert ) beim Abrufen.

Beispielcode:

Bitte führen Sie den folgenden Code in Ihrem MySQL aus (wir verwenden MySQL 8.0.27 für dieses Tutorial) und sehen Sie sich die Ausgabe nach dem Code an.

#create schema
CREATE SCHEMA db_practice_datetime_timestamp;

#create table
CREATE TABLE practice_datetime_and_timestamp (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    DATE_TIME DATETIME,
    TIME_STAMP TIMESTAMP
    );
#insert data   
INSERT INTO practice_datetime_and_timestamp(TIME_STAMP,DATE_TIME)
VALUES(NOW(),NOW());

#read data
SELECT DATE_TIME, TIME_STAMP from practice_datetime_and_timestamp;

Ausgabe:

datetime vs timestamp in mysql - Datum Teil a

Führen Sie nun den unten angegebenen Code aus und sehen Sie sich seine Ausgabe an.

SET time_zone = '-05:00';
SELECT DATE_TIME, TIME_STAMP from practice_datetime_and_timestamp;

Ausgabe:

datetime vs timestamp in mysql - Datum Teil b

Sie haben vielleicht bemerkt, dass sich die Zeit für die Spalte TIME_STAMP geändert hat, aber die Daten für DATE_TIME gleich bleiben.

Fazit

In dieser Diskussion sind wir zu dem Schluss gekommen, dass DATETIME und TIMESTAMP die gleichen Daten gemäß Ihren Anforderungen speichern. Wenn Sie möchten, dass Ihre Daten von der Zeitzone beeinflusst werden, gehen Sie zu TIMESTAMP. Ansonsten ist es gut, DATETIME zu verwenden.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook