DATETIME vs. TIMESTAMP in MySQL
-
Ähnlichkeiten von
DATETIMEundTIMESTAMP -
Unterschiede von
DATETIMEundTIMESTAMP -
Beispiel zum Verständnis der Verwendung von
DATETIMEundTIMESTAMPin MySQL - Fazit
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:
DATETIMEundTIMESTAMPbenötigen 5 Bytes bzw. 4 Bytes.TIMESTAMPwird von der Zeitzone beeinflusst, aberDATETIMEbleibt konstant.- Unterstützte Bereiche für
DATETIMEundTIMESTAMPsind'1000-01-01 00:00:00'bis'9999-12-31 23:59:59'und'1970-01-01 00:00:01'UTCbis'2038-01-19 03:14:07' UTC. DATETIMEkann nicht indiziert werden, währendTIMESTAMPes sein kann.- Abfragen mit
TIMESTAMPwerden zwischengespeichert, beiDATETIMEist 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:

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:

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.
