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!

MySQL - Date and Time Functions

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:

  1. Sie berechnet, wie viele Jahre jeder Mitarbeiter im Unternehmen ist.
  2. Sie bestimmt das Datum des nächsten Arbeitjahrestags.
  3. 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