MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

3 Möglichkeiten, das Jahr, den Monat und den Tag von einem Datum in MariaDB zu trennen

MariaDB verfügt über mehrere Funktionen, mit denen Sie verschiedene Datums- und Zeitteile aus Datums-/Zeitwerten extrahieren können. Sie können diese verwenden, um bei Bedarf jede Datums-/Uhrzeitkomponente in eine eigene Spalte zu unterteilen.

Im Folgenden finden Sie drei Möglichkeiten, um das Jahr, den Monat und den Tag aus einem Datumswert in MariaDB zu extrahieren.

Das YEAR() , MONTH() , und DAY() Funktionen

Das YEAR() , MONTH() , und DAY() Funktionen extrahieren das Jahr, den Monat und den Tag jeweils aus einem Datums- oder Datumszeitwert.

Hier ist ein Beispiel für die Verwendung dieser Funktionen, um jede Datumskomponente in ihrer eigenen Spalte zurückzugeben:

SELECT 
    YEAR('2025-08-30') AS "Year",
    MONTH('2025-08-30') AS "Month",
    DAY('2025-08-30') AS "Day";

Ergebnis:

+------+-------+------+
| Year | Month | Day  |
+------+-------+------+
| 2025 |     8 |   30 |
+------+-------+------+

Der DAY() Funktion ist eigentlich ein Synonym für DAYOFMONTH() , sodass beide dasselbe Ergebnis zurückgeben.

Es gibt auch einen WEEKDAY() Funktion, eine DAYOFWEEK() Funktion, ein DAYOFYEAR() Funktion und ein DAYNAME() -Funktion, von denen jede eine andere Darstellung des Tages zurückgibt.

Außerdem gibt es einen MONTHNAME() Funktion, die den Monatsnamen anstelle seiner Nummer zurückgibt.

Hier ist ein weiteres Beispiel, das diese Funktionen enthält:

SELECT 
    YEAR('2025-08-30') AS "YEAR",
    MONTH('2025-08-30') AS "MONTH",
    MONTHNAME('2025-08-30') AS "MONTHNAME",
    DAY('2025-08-30') AS "DAY",
    DAYOFMONTH('2025-08-30') AS "DAYOFMONTH",
    WEEKDAY('2025-08-30') AS "WEEKDAY",
    DAYOFWEEK('2025-08-30') AS "DAYOFWEEK",
    DAYOFYEAR('2025-08-30') AS "DAYOFYEAR",
    DAYNAME('2025-08-30') AS "DAYNAME";

Ergebnis (bei vertikaler Ausgabe):

      YEAR: 2025
     MONTH: 8
 MONTHNAME: August
       DAY: 30
DAYOFMONTH: 30
   WEEKDAY: 5
 DAYOFWEEK: 7
 DAYOFYEAR: 242
   DAYNAME: Saturday

Sie können auch Funktionen wie WEEK() verwenden um die Wochennummer zurückzugeben, und QUARTER() um das Viertel zurückzugeben.

Beispiel:

SELECT 
    WEEK('2025-08-30') AS "Week",
    QUARTER('2025-08-30') AS "Quarter";

Ergebnis:

+------+---------+
| Week | Quarter |
+------+---------+
|   34 |       3 |
+------+---------+

Die WEEK() Die Funktion akzeptiert ein zweites Argument, mit dem Sie den Modus angeben können. Dadurch kann sich die resultierende Wochennummer je nach aktuellem Datum ändern. Siehe Wie WEEK() Funktioniert in MariaDB für weitere Informationen und ein Beispiel.

Der EXTRACT() Funktion

Der EXTRACT() Mit der Funktion können Sie eine bestimmte Einheit aus dem Datums-/Uhrzeitwert extrahieren. Daher können Sie es verwenden, um Jahr, Monat und Tag aus dem Datum (sowie Woche und Quartal, falls erforderlich) zu extrahieren.

Beispiel:

SELECT 
    EXTRACT(YEAR FROM '2023-03-12') AS "Year",
    EXTRACT(MONTH FROM '2023-03-12') AS "Month",
    EXTRACT(DAY FROM '2023-03-12') AS "Day",
    EXTRACT(WEEK FROM '2023-03-12') AS "Week",
    EXTRACT(QUARTER FROM '2023-03-12') AS "Quarter";

Ergebnis:

+------+-------+------+------+---------+
| Year | Month | Day  | Week | Quarter |
+------+-------+------+------+---------+
| 2023 |     3 |   12 |   11 |       1 |
+------+-------+------+------+---------+

Das DATE_FORMAT() Funktion

Das DATE_FORMAT() Mit der Funktion können Sie einen Datums- oder Datumszeitwert basierend auf einer Formatzeichenfolge formatieren. Der Formatstring gibt an, wie das Datum/die Uhrzeit formatiert werden soll.

Wir können diese Funktion daher verwenden, um das Jahr, den Monat, den Tag und die Woche von einem Datum zurückzugeben.

Beispiel:

SELECT 
    DATE_FORMAT('2035-12-08', '%Y') AS "Year",
    DATE_FORMAT('2035-12-08', '%m') AS "Month",
    DATE_FORMAT('2035-12-08', '%d') AS "Day",
    DATE_FORMAT('2035-12-08', '%U') AS "Week";

Ergebnis:

+------+-------+------+------+
| Year | Month | Day  | Week |
+------+-------+------+------+
| 2035 | 12    | 08   | 48   |
+------+-------+------+------+

Für jeden Datumsteil gibt es mehrere mögliche Formatbezeichner. Jeder Datumsteil kann je nach tatsächlich bereitgestelltem Formatbezeichner einen anderen Wert zurückgeben. Beispielsweise können Sie den vollständigen Monatsnamen mit %M zurückgeben statt %m .

Siehe MariaDB-Formatzeichenfolgen für eine vollständige Liste von Formatzeichenfolgen/Bezeichnern, die mit DATE_FORMAT() verwendet werden können .