MySQL aktueller Zeitstempel: So erhalten Sie das aktuelle Datum und die Uhrzeit (NOW, SYSDATE, UTC_TIMESTAMP)

目次

1. Introduction

Die aktuelle Uhrzeit in MySQL abzurufen ist ein entscheidender Teil der Datenbankverwaltung.
Zum Beispiel kann es nötig sein, die aktuelle Uhrzeit in folgenden Situationen zu ermitteln:

  • Automatisches Speichern eines Erstellungs‑Zeitstempels beim Einfügen von Daten (z. B. ein Zeitstempel, wenn sich ein neuer Benutzer registriert)
  • Protokollierung von Benutzer‑Login‑Zeitpunkten (z. B. Verwaltung der Anmeldehistorie)
  • Abrufen von Daten innerhalb eines bestimmten Zeitraums (z. B. Bestellhistorie der letzten 24 Stunden)
  • Aufzeichnen von System‑Ausführungs‑Logs (z. B. Verwaltung von Fehlermeldungen und Ereignis‑Logs)

Wie Sie sehen, ist das korrekte Abrufen der „aktuellen Zeit“ für Datenmanagement und Protokollierung unerlässlich für den Betrieb einer Datenbank.

In diesem Artikel erklären wir wie man die aktuelle Zeit in MySQL im Detail mit echten SQL‑Abfragen ermittelt.
Wir behandeln außerdem die Unterschiede zwischen den gängigen Funktionen, wie man die passende Funktion auswählt und praktische Abfragebeispiele – nützlich für Anfänger bis hin zu fortgeschrittenen Anwendern.

2. MySQL Functions to Get the Current Date/Time (Comparison Table)

MySQL stellt mehrere Funktionen bereit, um die aktuelle Zeit abzurufen.
Die richtige Funktion für Ihren Anwendungsfall zu wählen ist wichtig, doch viele Menschen finden die Unterschiede verwirrend.

In diesem Abschnitt vergleichen wir die Hauptfunktionen, die zum Abrufen des aktuellen Datums/Zeit in MySQL verwendet werden, und erläutern ihre Eigenschaften im Detail.

2.1 Comparison Table of MySQL Time Functions

FunctionWhat it returnsFormatNotes
NOW()Current date and timeYYYY-MM-DD HH:MM:SSMost commonly used
SYSDATE()Date and time at executionYYYY-MM-DD HH:MM:SSUnlike NOW(), it can change on each execution
CURTIME()Current timeHH:MM:SSTime only (no date)
CURRENT_TIME()Current timeHH:MM:SSSame as CURTIME()
CURRENT_TIMESTAMP()Current date and timeYYYY-MM-DD HH:MM:SSAlmost the same as NOW()
UTC_TIMESTAMP()Current UTC date and timeYYYY-MM-DD HH:MM:SSTime zone is fixed to UTC

Aus der obigen Tabelle geben die meisten Funktionen entweder das „aktuelle Datum und die aktuelle Uhrzeit“ oder die „aktuelle Uhrzeit“ zurück, aber die beste Funktion hängt von Ihrem Zweck ab.

2.2 Overview and Characteristics of Each Function

NOW() Function

  • Die am häufigsten verwendete Funktion, um das aktuelle Datum und die aktuelle Uhrzeit zu erhalten
  • Gibt die Zeit zum Zeitpunkt des Beginns der SQL‑Anweisung zurück
  • Wird häufig für Zeitstempel beim Einfügen oder Aktualisieren von Daten verwendet
    SELECT NOW();
    

Beispielausgabe

2025-02-14 15:30:45

SYSDATE() Function

  • Ermittelt die aktuelle Zeit zum Ausführungszeitpunkt
  • Im Gegensatz zu NOW() kann SYSDATE() bei jeder Auswertung einen anderen Wert zurückgeben (es kann sich sogar innerhalb einer Transaktion ändern)
    SELECT SYSDATE();
    

Beispielausgabe

2025-02-14 15:30:47

CURTIME() Function

  • Gibt nur die Uhrzeit (HH:MM:SS) zurück
  • Nützlich, wenn das Datum nicht benötigt wird
    SELECT CURTIME();
    

Beispielausgabe

15:30:45

CURRENT_TIME() Function

  • Funktioniert genauso wie CURTIME()
  • Funktionsname entspricht dem SQL‑Standard
    SELECT CURRENT_TIME();
    

Beispielausgabe

15:30:45

CURRENT_TIMESTAMP() Function

  • Verhält sich wie NOW()
  • Kann als Spalten‑DEFAULT‑Wert angegeben werden (oft geeigneter als NOW() für Vorgabewerte)
    SELECT CURRENT_TIMESTAMP();
    

Beispielausgabe

2025-02-14 15:30:45

Als Standardwert beim Erstellen einer Tabelle festlegen:

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

UTC_TIMESTAMP() Function

  • Ermittelt die aktuelle UTC (Coordinated Universal Time)
  • Unabhängig von der Zeitzone des Servers, wodurch konsistente Zeitstempel ermöglicht werden
    SELECT UTC_TIMESTAMP();
    

Beispielausgabe

2025-02-14 06:30:45

2.3 Which Function Should You Use?

Use caseRecommended function
Get the current date and timeNOW()
Get a different timestamp each time within a transactionSYSDATE()
Need only the current time (HH:MM:SS)CURTIME() or CURRENT_TIME()
Set as a table default valueCURRENT_TIMESTAMP()
Get UTC timeUTC_TIMESTAMP()

Im Allgemeinen ist für typische Datums‑/Zeit‑Abrufe NOW() in der Regel die richtige Wahl.
Die Auswahl der besten Funktion für Ihren Anwendungsfall ermöglicht jedoch flexiblere und zuverlässigere Datenoperationen.

3. NOW() Function Details

Die MySQL‑Funktion NOW() ist die am häufigsten verwendete Funktion, um das aktuelle Datum und die aktuelle Uhrzeit (Datum + Zeit) zu erhalten.
Sie wird häufig zum Speichern von Zeitstempeln in der Datenbank und zum Abrufen von Daten innerhalb bestimmter Zeitbereiche verwendet.

3.1 Basic Usage of NOW()

Syntax of NOW()

SELECT NOW();

Example output

2025-02-14 15:30:45
  • Das Ausgabeformat ist YYYY-MM-DD HH:MM:SS (Jahr-Monat-Tag Stunde:Minute:Sekunde).
  • Die Zeit wird basierend auf den standardmäßigen Zeitzoneneinstellungen von MySQL abgerufen.

3.2 Häufige Anwendungsfälle für NOW()

① Aktuelle Zeit beim Einfügen von Daten aufzeichnen

Beim Einfügen von Daten in eine Datenbank können Sie NOW() verwenden, um einen Erstellungszeitstempel zu speichern.

INSERT INTO users (name, created_at) VALUES ('Sato', NOW());

② Aktuelle Zeit beim Aktualisieren von Daten aufzeichnen

UPDATE users SET last_login = NOW() WHERE id = 1;

③ Daten aus einem bestimmten Zeitraum abrufen

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 1 DAY;
  • Durch Angabe von INTERVAL 1 DAY können Sie „Daten aus dem letzten Tag“ abrufen.

3.3 Rückgabetyp und wie man das Ausgabeformat ändert

Rückgabetyp von NOW()

  • Typ DATETIME ( YYYY-MM-DD HH:MM:SS )
  • Er kann auch als Zeichenkette behandelt werden
    SELECT NOW(), typeof(NOW());
    

Wie man das Format ändert

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_time;

Beispielausgabe

2025-02-14 15:30:45

3.4 Unterschiede zwischen NOW() und SYSDATE()

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeCan return different timestamps within the same statement
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

Beispielausgabe

NOW()        | SLEEP(3) | NOW()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:48

🚨 Wenn Sie mit Transaktionen arbeiten, wird NOW() aus Konsistenzgründen empfohlen.

3.5 Einschränkungen und Hinweise zu NOW()

① Hängt von der Zeitzone ab

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

② Für Tabellenvorgabewerte verwenden Sie CURRENT_TIMESTAMP

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

3.6 Zusammenfassung von NOW()

  • NOW() ist die am häufigsten verwendete Funktion, um das aktuelle Datum und die aktuelle Uhrzeit in MySQL zu erhalten.
  • Sie kann für Einfügungen, Aktualisierungen und das Abrufen zeitbasierter Daten verwendet werden.
  • Verwenden Sie NOW(), wenn Sie innerhalb einer Transaktion einen konsistenten Zeitstempel benötigen.
  • SYSDATE() gibt bei jeder Auswertung eine andere Zeit zurück, verwenden Sie sie, wenn Sie den genauen Ausführungszeitpunkt benötigen.
  • Verwenden Sie CONVERT_TZ(), um die Zeit in einer anderen Zeitzone abzurufen.

📌 Fazit: In den meisten Fällen ist NOW() die beste Wahl, um das aktuelle Datum und die aktuelle Uhrzeit in MySQL zu erhalten.

4. Eigenschaften der SYSDATE()-Funktion

Die Funktion SYSDATE() ist eine weitere Möglichkeit, das aktuelle Datum und die aktuelle Uhrzeit in MySQL zu erhalten, verhält sich jedoch anders als NOW().
In diesem Abschnitt erklären wir die grundlegende Verwendung von SYSDATE(), wie sie sich von NOW() unterscheidet, und wichtige Hinweise.

4.1 Was ist SYSDATE()?

SYSDATE() ist eine Funktion, die die Zeit zum Zeitpunkt der Anweisungsausführung zurückgibt.
Im Gegensatz zu NOW() liefert sie bei jeder Auswertung einen anderen Zeitstempel.

SYSDATE()-Syntax

SELECT SYSDATE();

Beispielausgabe

2025-02-14 16:00:45
  • Zurückgegeben im Format YYYY-MM-DD HH:MM:SS
  • Stellt den Moment dar, in dem die Abfrage ausgeführt wird

4.2 Unterschiede zwischen SYSDATE() und NOW()

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeReturns a different timestamp each time

Vergleich des Verhaltens: NOW() vs SYSDATE()

SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

Beispielausgabe

NOW()        | SLEEP(3) | NOW()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:48

📌 Wichtige Punkte

  • NOW() behält den Zeitstempel vom Beginn der Anweisung bei, daher ändert er sich nicht.
  • SYSDATE() liefert bei jeder Auswertung einen anderen Zeitstempel, daher ändert er sich nach 3 Sekunden.

🚨 Verwenden Sie NOW() für die Transaktionsverarbeitung

  • Da SYSDATE() sich in mehrthreadigen Umgebungen anders verhalten kann als NOW(), wird NOW() im Allgemeinen für transaktionale Konsistenz empfohlen.

4.3 Beispiele für die Verwendung von SYSDATE()

① Aktuelle Zeit beim Einfügen von Daten aufzeichnen

INSERT INTO logs (event, created_at) VALUES ('User login', SYSDATE());

② Aktuelle Zeit beim Aktualisieren von Daten aufzeichnen

UPDATE users SET last_login = SYSDATE() WHERE id = 1;

③ Aktuelle Zeit in einem bestimmten Format erhalten

SELECT DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%s') AS formatted_time;

Beispielausgabe

2025-02-14 16:05:30

4.4 Einschränkungen und Hinweise zu SYSDATE()

① Transaktionsverhalten

  • NOW() behält den Zeitstempel vom Beginn der Anweisung bei, sodass er innerhalb einer Transaktion konsistent verwendet werden kann.
  • SYSDATE() gibt bei jedem Aufruf einen anderen Zeitstempel zurück, sodass innerhalb einer Transaktion ein Zeitdrift auftreten kann.

② Kann nicht als DEFAULT-Wert verwendet werden

  • SYSDATE() kann nicht als DEFAULT-Wert einer Tabellenspalte festgelegt werden.

Lösung: Verwende DEFAULT CURRENT_TIMESTAMP.

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.5 Wann sollten Sie SYSDATE() verwenden?

Use caseRecommended function
Typical current timestamp retrievalNOW()
Use a consistent timestamp within a transactionNOW()
Need the exact execution timeSYSDATE()

🚀 SYSDATE() ist für Echtzeit-Logging geeignet, aber nicht ideal für die Transaktionsverarbeitung.

4.6 Zusammenfassung von SYSDATE()

  • SYSDATE() holt den Zeitstempel zum Ausführungszeitpunkt, im Gegensatz zu NOW().
  • Da es bei jedem Aufruf unterschiedliche Werte zurückgeben kann, ist es nützlich für Echtzeit-Logging.
  • Für transaktionale Konsistenz wird NOW() empfohlen.
  • Für Standardwerte verwenden Sie CURRENT_TIMESTAMP.

📌 Fazit: Für allgemeine Zeitstempelabfragen ist NOW() am besten; für genaue Ausführungszeiten wählen Sie SYSDATE().

5. CURTIME() und CURRENT_TIME()

Wenn Sie die aktuelle Zeit in MySQL erhalten möchten, werden CURTIME() und CURRENT_TIME() verwendet, wenn Sie nur die Zeit (HH:MM:SS) benötigen.
In diesem Abschnitt erklären wir die grundlegende Verwendung, Unterschiede und praktische Beispiele für beide.

5.1 Was ist CURTIME()?

CURTIME() ist eine Funktion, die die aktuelle Zeit (Stunde, Minute, Sekunde) in MySQL abruft.
Ihr Hauptmerkmal ist, dass sie kein Datum enthält – nur der Zeitanteil wird zurückgegeben.

Syntax von CURTIME()

SELECT CURTIME();

Beispielausgabe

16:30:45
  • Format: HH:MM:SS
  • Hängt von der Zeitzoneneinstellung des Servers ab
  • Im Gegensatz zu NOW() ist sie geeignet, wenn Sie keine Datumsinformationen benötigen

5.2 Was ist CURRENT_TIME()?

CURRENT_TIME(), wie CURTIME(), ist eine Funktion, die die aktuelle Zeit (HH:MM:SS) abruft.
In der Praxis verhält sie sich genau wie CURTIME().

Syntax von CURRENT_TIME()

SELECT CURRENT_TIME();

Beispielausgabe

16:30:45

📌 Was ist der Unterschied?

  • CURTIME() ist MySQL-spezifisch
  • CURRENT_TIME() ist SQL-Standard
  • Sie verhalten sich gleich
  • Wählen Sie je nach Lesbarkeitspräferenz (keine Leistungsunterschiede)

5.3 CURTIME() vs CURRENT_TIME() (Vergleich)

FunctionWhat it returnsFormatNotes
CURTIME()Current time (hour/minute/second)HH:MM:SSMySQL-specific function
CURRENT_TIME()Current time (hour/minute/second)HH:MM:SSSQL-standard function

5.4 Praktische Beispiele für CURTIME() / CURRENT_TIME()

① Aktuelle Zeit beim Einfügen von Daten aufzeichnen

INSERT INTO user_logs (event, event_time) VALUES ('Login', CURTIME());

② Filtern (Daten innerhalb eines bestimmten Zeitbereichs abrufen)

SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';

③ Präzision ändern (Millisekunden einbeziehen)

SELECT CURTIME(3);  -- Display up to 3 fractional digits

Beispielausgabe

16:30:45.123

5.5 Einschränkungen und Hinweise für CURTIME() / CURRENT_TIME()

① Keine Datumsinformationen, daher bei Bedarf mit einem Datum kombinieren

SELECT CONCAT(CURDATE(), ' ', CURTIME()) AS full_datetime;

② Bei Verwendung als DEFAULT-Wert

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event_time TIME DEFAULT CURTIME()
);

5.6 Wann sollten Sie CURTIME() / CURRENT_TIME() verwenden?

Use caseRecommended function
Need only the current time (hour/minute/second)CURTIME() or CURRENT_TIME()
Need current date and timeNOW()
Need millisecond precisionCURTIME(3)

📌 In den meisten Fällen funktioniert entweder CURTIME() oder CURRENT_TIME() einwandfrei.
Wählen Sie die Variante, die Sie lesbarer finden.

5.7 Zusammenfassung von CURTIME() / CURRENT_TIME()

  • CURTIME() ist MySQL-spezifisch; CURRENT_TIME() ist SQL-Standard
  • Beide geben die aktuelle Uhrzeit zurück (HH:MM:SS)
  • Verwenden Sie CURTIME(3) oder DATE_FORMAT(), um Formatierung/Präzision anzupassen
  • Wenn Sie ein Datum benötigen, kombinieren Sie es mit CURDATE() oder verwenden Sie NOW()
  • Für Vorgabewerte wird häufig CURRENT_TIMESTAMP verwendet

📌 Fazit: Wenn Sie nur die aktuelle Uhrzeit benötigen, ist CURTIME() eine solide Wahl.

6. Praktische Abfragebeispiele mit der aktuellen Uhrzeit

Jetzt, da Sie wissen, wie Sie die aktuelle Uhrzeit in MySQL abrufen, schauen wir uns praktische Anwendungsmöglichkeiten an.
In diesem Abschnitt stellen wir reale Abfragebeispiele mit der aktuellen Uhrzeit vor.
Sie lernen Techniken, die für tägliche Datenbankaufgaben wie Einfügungen, Aktualisierungen und Suchen nützlich sind.

6.1 Aktuelle Uhrzeit beim Einfügen von Daten aufzeichnen

① Aktuelle Uhrzeit bei der Registrierung eines Benutzers aufzeichnen

INSERT INTO users (name, email, created_at) 
VALUES ('Sato', 'sato@example.com', NOW());

6.2 Aktuelle Uhrzeit beim Aktualisieren von Daten aufzeichnen

② Zeitstempel des letzten Logins des Benutzers aufzeichnen

UPDATE users SET last_login = NOW() WHERE id = 1;

6.3 Daten der letzten N Tage abrufen

③ Bestelldaten der letzten 7 Tage abrufen

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;

6.4 Daten, die innerhalb eines bestimmten Zeitraums erstellt wurden, abrufen

④ Daten, die heute zwischen 09:00 und 18:00 Uhr erstellt wurden, abrufen

SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';

6.5 Aktuelle Uhrzeit unter Berücksichtigung von Zeitzonen abrufen

⑤ UTC-Zeit in Japanische Zeit (JST) umwandeln

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

6.6 Erstellungszeit eines Datensatzes standardmäßig auf den aktuellen Zeitstempel setzen

created_at automatisch auf den aktuellen Zeitstempel setzen

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

6.7 Daten nach einer bestimmten Zeit löschen

⑦ Daten löschen, die älter als 30 Tage sind

DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

6.8 Aktuelle Uhrzeit mit Millisekunden‑ (Mikrosekunden‑) Präzision erhalten

⑧ Aktuellen Zeitstempel mit Millisekundenpräzision erhalten

SELECT NOW(3);

Beispielausgabe

2025-02-14 16:30:45.123

6.9 Leitfaden zur Auswahl von Anwendungsfällen

Use caseRecommended functionExample
Record the current time when inserting dataNOW()INSERT INTO users (name, created_at) VALUES ('Sato', NOW());
Record the current time when updating dataNOW()UPDATE users SET last_login = NOW() WHERE id = 1;
Retrieve data from the past N daysNOW() - INTERVAL X DAYSELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
Retrieve data within a specific time rangeCURTIME()SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';
Convert UTC time to JSTCONVERT_TZ()SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
Delete old data (older than 30 days)NOW() - INTERVAL X DAYDELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

6.10 Zusammenfassung

  • NOW() übernimmt die grundlegende Abfrage des aktuellen Zeitstempels
  • CURTIME() und CURRENT_TIME() sind nützlich, wenn Sie nur die Uhrzeit benötigen
  • Sie können die aktuelle Uhrzeit für Zeitfenster‑Abfragen, Tageszeit‑Filterungen und Zeitstempel mit Millisekundenpräzision verwenden
  • Da Zeitstempel von Zeitzonen abhängen, verwenden Sie CONVERT_TZ(), um die korrekte Zeit zu erhalten
  • Für die Verwaltung der Datenbankgröße ist es ebenfalls wichtig, einen Mechanismus zu entwerfen, der alte Daten automatisch löscht

📌 Fazit: Die effektive Nutzung der aktuellen Uhrzeit hilft Ihnen, Daten in MySQL effizienter zu verwalten.

7. FAQ (Häufig gestellte Fragen)

Hier finden Sie häufig gestellte Fragen (FAQ) zum Abrufen der aktuellen Uhrzeit in MySQL. Jede Frage wird klar und prägnant beantwortet.

7.1 Was ist der Unterschied zwischen NOW() und SYSDATE()?

Antwort

Sowohl NOW() als auch SYSDATE() geben das aktuelle Datum und die aktuelle Uhrzeit zurück, unterscheiden sich jedoch darin, wann der Wert ausgewertet wird.

FunctionWhen it’s evaluatedNotes
NOW()At query startReturns a fixed timestamp for the statement
SYSDATE()At execution timeReturns a different timestamp on each evaluation

Testbeispiel

SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();

Beispielausgabe

NOW()        | SLEEP(3) | NOW()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:45
SYSDATE()    | SLEEP(3) | SYSDATE()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:48

🚨 Für die Transaktionsverarbeitung wird in der Regel NOW() empfohlen.

7.2 Sind CURRENT_TIMESTAMP() und NOW() dasselbe?

Antwort

Sie verhalten sich fast identisch, aber CURRENT_TIMESTAMP() kann als DEFAULT-Wert verwendet werden.

Beispiel beim Erstellen einer Tabelle

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7.3 Wie hole ich mir die aktuelle Zeit in einer bestimmten Zeitzone?

Antwort

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

7.4 Wie kann ich die aktuelle Zeit automatisch aufzeichnen?

Antwort

Beim Erstellen einer Tabelle geben Sie DEFAULT CURRENT_TIMESTAMP an, um die aktuelle Zeit automatisch in created_at zu speichern.

CREATE TABLE logs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7.5 Wie hole ich Daten aus den letzten N Tagen ab?

Antwort

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;

7.6 Wie hole ich die aktuelle Zeit mit Millisekunden- (Mikrosekunden-)Genauigkeit?

Antwort

SELECT NOW(3);

Beispielausgabe

2025-02-14 16:30:45.123

7.7 Zusammenfassung

  • NOW() und SYSDATE() unterscheiden sich im Auswertungszeitpunkt
  • CURRENT_TIMESTAMP() kann als DEFAULT-Wert verwendet werden
  • Verwenden Sie CONVERT_TZ(), um Zeitstempel in anderen Zeitzonen abzurufen
  • Verwenden Sie DEFAULT CURRENT_TIMESTAMP, um Erstellungszeitstempel automatisch aufzuzeichnen
  • Verwenden Sie NOW() - INTERVAL X DAY, um Daten aus den letzten X Tagen abzurufen
  • NOW(3) oder NOW(6) unterstützt Zeitstempel mit Millisekunden-/Mikrosekunden-Genauigkeit

📌 Fazit: Die Auswahl der richtigen MySQL-Zeitfunktion ist essenziell für die Arbeit mit aktuellen Zeitstempeln.

8. Zusammenfassung

In diesem Artikel haben wir erklärt, wie man die aktuelle Zeit in MySQL abrufen kann.
Mit Fokus auf die NOW()-Funktion haben wir Unterschiede zwischen ähnlichen Funktionen, praktische Abfragebeispiele und wichtige Hinweise behandelt.

8.1 Wichtige MySQL-Funktionen zum Abrufen der aktuellen Zeit

FunctionWhat it returnsFormatNotes
NOW()Current date and timeYYYY-MM-DD HH:MM:SSMost common function
SYSDATE()Date and time at executionYYYY-MM-DD HH:MM:SSCan return different values on each evaluation
CURTIME()Current timeHH:MM:SSTime only (no date)
CURRENT_TIME()Current timeHH:MM:SSSame as CURTIME()
CURRENT_TIMESTAMP()Current date and timeYYYY-MM-DD HH:MM:SSAlmost the same as NOW()
UTC_TIMESTAMP()Current UTC date and timeYYYY-MM-DD HH:MM:SSTime zone fixed to UTC

📌 Fazit:

  • Für die allgemeine Abrufung des aktuellen Zeitstempels ist NOW() in der Regel am besten .
  • Wenn Sie die genaue Ausführungszeit benötigen, verwenden Sie SYSDATE() .
  • Wenn Sie nur die Zeit (ohne Datum) benötigen, wählen Sie CURTIME() .

8.2 Praktische Abfragen mit der aktuellen Zeit

Aktuelle Zeit beim Einfügen von Daten aufzeichnen

INSERT INTO users (name, created_at) VALUES ('Sato', NOW());

Aktuelle Zeit beim Aktualisieren von Daten aufzeichnen

UPDATE users SET last_login = NOW() WHERE id = 1;

Daten aus den letzten 7 Tagen abrufen

SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;

Zeit mit Berücksichtigung von Zeitzonen abrufen

SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');

Alte Daten löschen (älter als 30 Tage)

DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;

8.3 Hinweise zu Zeitzonen

  • MySQL NOW() hängt von der Standard-Zeitzoneneinstellung ab, sodass Ergebnisse in verschiedenen Umgebungen unterschiedlich ausfallen können.
  • Verwenden Sie CONVERT_TZ(), um Zeitstempel in einer anderen Zeitzone abzurufen.
  • Wenn Sie die Server-Zeitzone ändern möchten:
    SET GLOBAL time_zone = 'Asia/Tokyo';
    

8.4 FAQ zu MySQL-Aktuellen-Zeit-Funktionen

Q1. Was ist der Unterschied zwischen NOW() und SYSDATE()?

NOW() ruft die Zeit zum Abfragenstart ab, während SYSDATE() die Zeit zur Ausführung abruft.

Q2. Sind CURRENT_TIMESTAMP() und NOW() dasselbe?

➡ Sie sind fast identisch, aber CURRENT_TIMESTAMP() kann als DEFAULT-Wert verwendet werden.

Q3. Wie hole ich die aktuelle Zeit mit Millisekunden- (Mikrosekunden-)Genauigkeit?

➡ Verwenden Sie NOW(3) (Millisekunden) oder NOW(6) (Mikrosekunden).

SELECT NOW(3); -- Example: 2025-02-14 16:30:45.123

8.5 Zusammenfassung

  • In MySQL ist die Auswahl der richtigen Funktion für die aktuelle Zeit wichtig .
  • Verwenden Sie NOW() für typische Fälle und SYSDATE(), wenn Sie exakte Ausführungszeitstempel benötigen .
  • Verwenden Sie CURTIME() nur für die Zeit und CONVERT_TZ() für die Zeitzonenkonvertierung .
  • Sie können die aktuelle Zeit bei Einfügungen, Aktualisierungen, Suchen und Löschungen verwenden .

📌 Fazit: Beherrschen Sie MySQL‑Zeitfunktionen, um Daten effizienter zu verwalten.