MySQL-Daten- und Uhrzeitfunktionen: Ein Anfängerleitfaden
Hallo da draußen, zukünftige Datenbank-Zauberer! Heute machen wir uns auf eine aufregende Reise durch die Welt der MySQL-Daten- und Uhrzeitfunktionen. Keine Sorge, wenn ihr vorher noch nie eine Zeile Code geschrieben habt – ich werde euer freundlicher Guide sein, und wir gehen das Schritt für Schritt durch. Am Ende dieses Tutorials werdet ihr Daten und Uhrzeiten wie ein Profi manipulieren können!
Warum Daten- und Uhrzeitfunktionen wichtig sind
Bevor wir eintauchen, lasse ich euch eine kurze Geschichte erzählen. Vor ein paar Jahren baute einer meiner Schüler eine Geburtstags erinnerungs-App. Er hatte Schwierigkeiten mit Datumrechnungen, bis er die MySQL-Datenfunktionen entdeckte. Plötzlich konnte seine App den Benutzern sagen, wie viele Tage noch bis zu den Geburtstagen ihrer Freunde bleiben. Es war wie Magie! Das ist die Macht des Beherrschens dieser Funktionen.
Erste Schritte: Der aktuelle Datum und die Uhrzeit
Fangen wir mit den Grundlagen an. MySQL bietet mehrere Funktionen, um das aktuelle Datum und die Uhrzeit zu erhalten. Hier sind die häufigsten:
Funktion | Beschreibung | Beispiel Ausgabe |
---|---|---|
NOW() | Aktuelles Datum und Uhrzeit | 2023-05-15 14:30:00 |
CURDATE() | Aktuelles Datum | 2023-05-15 |
CURTIME() | Aktuelle Uhrzeit | 14:30:00 |
Schauen wir uns das in der Praxis an:
SELECT NOW(), CURDATE(), CURTIME();
Diese Abfrage wird das aktuelle Datum und die Uhrzeit, nur das Datum und nur die Uhrzeit zurückgeben. quite cool, oder?
Das Verständnis der Ausgabe
Die NOW()-Funktion gibt einen datetime-Wert zurück, der sowohl das Datum als auch die Uhrzeit enthält. CURDATE() gibt euch nur das Datum im Format 'JJJJ-MM-TT', während CURTIME() die Uhrzeit im Format 'SS:MM:SS' anzeigt.
Herausziehen von Teilen von Daten und Uhrzeiten
Nun, stellen wir uns vor, ihr habt einen datetime-Wert und wollt bestimmte Teile davon extrahieren. MySQL hat euch mit diesen praktischen Funktionen abgedeckt:
Funktion | Beschreibung | Beispiel Verwendung | Beispiel Ausgabe |
---|---|---|---|
YEAR() | Das Jahr extrahieren | YEAR('2023-05-15') | 2023 |
MONTH() | Den Monat extrahieren | MONTH('2023-05-15') | 5 |
DAY() | Den Tag extrahieren | DAY('2023-05-15') | 15 |
HOUR() | Die Stunde extrahieren | HOUR('14:30:00') | 14 |
MINUTE() | Die Minute extrahieren | MINUTE('14:30:00') | 30 |
SECOND() | Die Sekunde extrahieren | SECOND('14:30:45') | 45 |
Probieren wir das aus:
SELECT
YEAR('2023-05-15') AS year,
MONTH('2023-05-15') AS month,
DAY('2023-05-15') AS day,
HOUR('14:30:45') AS hour,
MINUTE('14:30:45') AS minute,
SECOND('14:30:45') AS second;
Diese Abfrage wird sauberlich jeden Teil des Datums und der Uhrzeit für uns extrahieren.
Praktische Anwendung
Stellen wir uns vor, ihr baut eine Webseite, die Geburtstage von Benutzern anzeigt. Ihr könnt die Funktionen MONTH() und DAY() verwenden, um nur den Monat und den Tag eines gespeicherten Geburtstags zu extrahieren, das Jahr zu ignorieren. Auf diese Weise könnt ihr den Benutzern einen Glückwunsch zum Geburtstag machen, ohne ihr Alter preiszugeben!
Datumarithmetik: Hinzufügen und Subtrahieren
Eine der coolersten Sachen an MySQLs Datenfunktionen ist, dass ihr mit Daten rechnen könnt. Sehen wir uns einige Funktionen dafür an:
Funktion | Beschreibung | Beispiel Verwendung |
---|---|---|
DATE_ADD() | Ein Intervall zu einem Datum hinzufügen | DATE_ADD('2023-05-15', INTERVAL 1 TAG) |
DATE_SUB() | Ein Intervall von einem Datum subtrahieren | DATE_SUB('2023-05-15', INTERVAL 1 MONAT) |
DATEDIFF() | Den Unterschied zwischen Daten finden | DATEDIFF('2023-05-15', '2023-01-01') |
So könnten wir das verwenden:
SELECT
DATE_ADD('2023-05-15', INTERVAL 1 TAG) AS morgen,
DATE_SUB('2023-05-15', INTERVAL 1 MONAT) AS letzter_monat,
DATEDIFF('2023-05-15', '2023-01-01') AS tage_seit_neujahr;
Diese Abfrage wird uns den nächsten Tag, das Datum eines Monats zuvor und die Anzahl der Tage seit Neujahr anzeigen.
Die Kraft der Intervalle
In den Funktionen DATE_ADD() und DATE_SUB() verwenden wir das Schlüsselwort INTERVAL. Das ist unglaublich flexibel – ihr könnt Jahre, Monate, Tage, Stunden, Minuten und sogar Sekunden hinzufügen oder subtrahieren!
Formatierung von Daten und Uhrzeiten
Manchmal müsst ihr Daten und Uhrzeiten in einem bestimmten Format präsentieren. Da kommt die Funktion DATE_FORMAT() ins Spiel:
SELECT DATE_FORMAT('2023-05-15 14:30:00', '%W, %M %d, %Y um %h:%i %p') AS formatiertes_datum;
Das wird Folgendes ausgeben: "Montag, Mai 15, 2023 um 02:30 PM"
Die % Symbole gefolgt von Buchstaben sind Format specifier. Hier sind einige gängige:
Specifier | Beschreibung |
---|---|
%W | Wochentagname in voller Länge |
%M | Monatsname in voller Länge |
%d | Tag des Monats (01-31) |
%Y | Jahr als 4-stellige Zahl |
%h | Stunde (01-12) |
%i | Minuten (00-59) |
%p | AM oder PM |
Alles zusammenfügen
Lassen wir uns das, was wir gelernt haben, in ein praktisches Beispiel einfließen. Stellen wir uns vor, wir bauen ein System zur Verfolgung von Arbeitjahrestagen von Mitarbeitern:
CREATE TABLE mitarbeiter (
id INT PRIMARY KEY,
name VARCHAR(100),
eintrittsdatum DATE
);
INSERT INTO mitarbeiter VALUES
(1, 'Alice', '2020-06-15'),
(2, 'Bob', '2021-03-20'),
(3, 'Charlie', '2019-11-01');
SELECT
name,
eintrittsdatum,
YEAR(CURDATE()) - YEAR(eintrittsdatum) AS jahre_beschaeftigt,
DATE_ADD(DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(eintrittsdatum), '-', DAY(eintrittsdatum))),
INTERVAL IF(CURDATE() > DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(eintrittsdatum), '-', DAY(eintrittsdatum))), 1, 0) YEAR)
AS naechster_jahrestag,
DATEDIFF(
DATE_ADD(DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(eintrittsdatum), '-', DAY(eintrittsdatum))),
INTERVAL IF(CURDATE() > DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(eintrittsdatum), '-', DAY(eintrittsdatum))), 1, 0) YEAR),
CURDATE()
) AS tage_bis_jahrestag
FROM mitarbeiter;
Diese Abfrage doet mehrere Dinge:
- Sie berechnet, wie viele Jahre jeder Mitarbeiter im Unternehmen ist.
- Sie bestimmt das Datum des nächsten Arbeitjahrestags.
- Sie berechnet, wie viele Tage bis zum nächsten Jahrestag bleiben.
Schlussfolgerung
Glückwunsch! Ihr habt die ersten Schritte in die Welt der MySQL-Daten- und Uhrzeitfunktionen gemacht. Wir haben die Grundlagen des aktuellen Datums und der Uhrzeit, das Herausziehen von Teilen von Daten, die Datumarithmetik und die Formatierung von Daten für die Anzeige behandelt.
Denkt daran, Übung macht den Meister. Versucht, eigene Abfragen mit diesen Funktionen zu erstellen. Vielleicht baut你们的那个 ich erwähnte Geburtstags erinnerungs-App! Je öfter ihr mit diesen Funktionen experimentiert, desto sicherer werdet ihr darin.
Und denkt immer daran: In der Welt der Programmierung ist jeder Tag eine neue Gelegenheit zum Lernen und Wachsen. Frohes Coden, zukünftige Datenbankmeister!
Credits: Image by storyset