- 1 1. Introduction
- 2 2. MySQL Functions to Get the Current Date/Time (Comparison Table)
- 3 3. NOW() Function Details
- 4 4. Eigenschaften der SYSDATE()-Funktion
- 5 5. CURTIME() und CURRENT_TIME()
- 5.1 5.1 Was ist CURTIME()?
- 5.2 5.2 Was ist CURRENT_TIME()?
- 5.3 5.3 CURTIME() vs CURRENT_TIME() (Vergleich)
- 5.4 5.4 Praktische Beispiele für CURTIME() / CURRENT_TIME()
- 5.5 5.5 Einschränkungen und Hinweise für CURTIME() / CURRENT_TIME()
- 5.6 5.6 Wann sollten Sie CURTIME() / CURRENT_TIME() verwenden?
- 5.7 5.7 Zusammenfassung von CURTIME() / CURRENT_TIME()
- 6 6. Praktische Abfragebeispiele mit der aktuellen Uhrzeit
- 6.1 6.1 Aktuelle Uhrzeit beim Einfügen von Daten aufzeichnen
- 6.2 6.2 Aktuelle Uhrzeit beim Aktualisieren von Daten aufzeichnen
- 6.3 6.3 Daten der letzten N Tage abrufen
- 6.4 6.4 Daten, die innerhalb eines bestimmten Zeitraums erstellt wurden, abrufen
- 6.5 6.5 Aktuelle Uhrzeit unter Berücksichtigung von Zeitzonen abrufen
- 6.6 6.6 Erstellungszeit eines Datensatzes standardmäßig auf den aktuellen Zeitstempel setzen
- 6.7 6.7 Daten nach einer bestimmten Zeit löschen
- 6.8 6.8 Aktuelle Uhrzeit mit Millisekunden‑ (Mikrosekunden‑) Präzision erhalten
- 6.9 6.9 Leitfaden zur Auswahl von Anwendungsfällen
- 6.10 6.10 Zusammenfassung
- 7 7. FAQ (Häufig gestellte Fragen)
- 7.1 7.1 Was ist der Unterschied zwischen NOW() und SYSDATE()?
- 7.2 7.2 Sind CURRENT_TIMESTAMP() und NOW() dasselbe?
- 7.3 7.3 Wie hole ich mir die aktuelle Zeit in einer bestimmten Zeitzone?
- 7.4 7.4 Wie kann ich die aktuelle Zeit automatisch aufzeichnen?
- 7.5 7.5 Wie hole ich Daten aus den letzten N Tagen ab?
- 7.6 7.6 Wie hole ich die aktuelle Zeit mit Millisekunden- (Mikrosekunden-)Genauigkeit?
- 7.7 7.7 Zusammenfassung
- 8 8. Zusammenfassung
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
| Function | What it returns | Format | Notes |
|---|---|---|---|
| NOW() | Current date and time | YYYY-MM-DD HH:MM:SS | Most commonly used |
| SYSDATE() | Date and time at execution | YYYY-MM-DD HH:MM:SS | Unlike NOW(), it can change on each execution |
| CURTIME() | Current time | HH:MM:SS | Time only (no date) |
| CURRENT_TIME() | Current time | HH:MM:SS | Same as CURTIME() |
| CURRENT_TIMESTAMP() | Current date and time | YYYY-MM-DD HH:MM:SS | Almost the same as NOW() |
| UTC_TIMESTAMP() | Current UTC date and time | YYYY-MM-DD HH:MM:SS | Time 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 alsNOW()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 case | Recommended function |
|---|---|
| Get the current date and time | NOW() |
| Get a different timestamp each time within a transaction | SYSDATE() |
| Need only the current time (HH:MM:SS) | CURTIME() or CURRENT_TIME() |
| Set as a table default value | CURRENT_TIMESTAMP() |
| Get UTC time | UTC_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 DAYkö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()
| Function | When it’s evaluated | Notes |
|---|---|---|
| NOW() | At query start | Returns a fixed timestamp for the statement |
| SYSDATE() | At execution time | Can 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()
| Function | When it’s evaluated | Notes |
|---|---|---|
| NOW() | At query start | Returns a fixed timestamp for the statement |
| SYSDATE() | At execution time | Returns 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 alsNOW(), wirdNOW()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 alsDEFAULT-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 case | Recommended function |
|---|---|
| Typical current timestamp retrieval | NOW() |
| Use a consistent timestamp within a transaction | NOW() |
| Need the exact execution time | SYSDATE() |
🚀 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-spezifischCURRENT_TIME()ist SQL-Standard- Sie verhalten sich gleich
- Wählen Sie je nach Lesbarkeitspräferenz (keine Leistungsunterschiede)
5.3 CURTIME() vs CURRENT_TIME() (Vergleich)
| Function | What it returns | Format | Notes |
|---|---|---|---|
| CURTIME() | Current time (hour/minute/second) | HH:MM:SS | MySQL-specific function |
| CURRENT_TIME() | Current time (hour/minute/second) | HH:MM:SS | SQL-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 case | Recommended function |
|---|---|
| Need only the current time (hour/minute/second) | CURTIME() or CURRENT_TIME() |
| Need current date and time | NOW() |
| Need millisecond precision | CURTIME(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)oderDATE_FORMAT(), um Formatierung/Präzision anzupassen - Wenn Sie ein Datum benötigen, kombinieren Sie es mit
CURDATE()oder verwenden SieNOW() - Für Vorgabewerte wird häufig
CURRENT_TIMESTAMPverwendet
📌 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 case | Recommended function | Example |
|---|---|---|
| Record the current time when inserting data | NOW() | INSERT INTO users (name, created_at) VALUES ('Sato', NOW()); |
| Record the current time when updating data | NOW() | UPDATE users SET last_login = NOW() WHERE id = 1; |
| Retrieve data from the past N days | NOW() - INTERVAL X DAY | SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY; |
| Retrieve data within a specific time range | CURTIME() | SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00'; |
| Convert UTC time to JST | CONVERT_TZ() | SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo'); |
| Delete old data (older than 30 days) | NOW() - INTERVAL X DAY | DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY; |
6.10 Zusammenfassung
NOW()übernimmt die grundlegende Abfrage des aktuellen ZeitstempelsCURTIME()undCURRENT_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.
| Function | When it’s evaluated | Notes |
|---|---|---|
| NOW() | At query start | Returns a fixed timestamp for the statement |
| SYSDATE() | At execution time | Returns 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()undSYSDATE()unterscheiden sich im AuswertungszeitpunktCURRENT_TIMESTAMP()kann alsDEFAULT-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)oderNOW(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
| Function | What it returns | Format | Notes |
|---|---|---|---|
| NOW() | Current date and time | YYYY-MM-DD HH:MM:SS | Most common function |
| SYSDATE() | Date and time at execution | YYYY-MM-DD HH:MM:SS | Can return different values on each evaluation |
| CURTIME() | Current time | HH:MM:SS | Time only (no date) |
| CURRENT_TIME() | Current time | HH:MM:SS | Same as CURTIME() |
| CURRENT_TIMESTAMP() | Current date and time | YYYY-MM-DD HH:MM:SS | Almost the same as NOW() |
| UTC_TIMESTAMP() | Current UTC date and time | YYYY-MM-DD HH:MM:SS | Time 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 undSYSDATE(), wenn Sie exakte Ausführungszeitstempel benötigen . - Verwenden Sie
CURTIME()nur für die Zeit undCONVERT_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.


