MariaDB har flere funktioner, der gør dig i stand til at udtrække forskellige dato- og tidsdele fra dato/tidsværdier. Du kan bruge disse til at adskille hver dato/klokkeslæt-komponent i sin egen kolonne, hvis det kræves.
Nedenfor er tre måder at udtrække år, måned og dag fra en datoværdi i MariaDB.
YEAR()
, MONTH()
, og DAY()
Funktioner
YEAR()
, MONTH()
, og DAY()
funktioner udtrækker år, måned og dag fra henholdsvis en dato eller datetime-værdi.
Her er et eksempel på brug af disse funktioner til at returnere hver datokomponent i sin egen kolonne:
SELECT
YEAR('2025-08-30') AS "Year",
MONTH('2025-08-30') AS "Month",
DAY('2025-08-30') AS "Day";
Resultat:
+------+-------+------+ | Year | Month | Day | +------+-------+------+ | 2025 | 8 | 30 | +------+-------+------+
DAY()
funktion er faktisk et synonym for DAYOFMONTH()
, så begge vil returnere det samme resultat.
Der er også en WEEKDAY()
funktion, en DAYOFWEEK()
funktion, en DAYOFYEAR()
funktion og en DAYNAME()
funktion, som hver returnerer en anden repræsentation af dagen.
Derudover er der en MONTHNAME()
funktion, der returnerer månedens navn i stedet for dets nummer.
Her er et andet eksempel, der inkluderer disse funktioner:
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";
Resultat (ved hjælp af lodret output):
YEAR: 2025 MONTH: 8 MONTHNAME: August DAY: 30 DAYOFMONTH: 30 WEEKDAY: 5 DAYOFWEEK: 7 DAYOFYEAR: 242 DAYNAME: Saturday
Du kan også bruge funktioner såsom WEEK()
for at returnere ugenummeret og QUARTER()
for at returnere kvartalet.
Eksempel:
SELECT
WEEK('2025-08-30') AS "Week",
QUARTER('2025-08-30') AS "Quarter";
Resultat:
+------+---------+ | Week | Quarter | +------+---------+ | 34 | 3 | +------+---------+
WEEK()
funktion accepterer et andet argument, der giver dig mulighed for at angive tilstanden. Dette kan ændre det resulterende ugenummer, afhængigt af den faktiske dato. Se hvordan WEEK()
Arbejder i MariaDB for mere information og et eksempel.
EXTRACT()
Funktion
EXTRACT()
funktionen giver dig mulighed for at udtrække en specificeret enhed fra dato/tidsværdien. Derfor kan du bruge den til at udtrække år, måned og dag fra datoen (samt uge og kvartal, hvis det kræves).
Eksempel:
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";
Resultat:
+------+-------+------+------+---------+ | Year | Month | Day | Week | Quarter | +------+-------+------+------+---------+ | 2023 | 3 | 12 | 11 | 1 | +------+-------+------+------+---------+
DATE_FORMAT()
Funktion
DATE_FORMAT()
funktionen giver dig mulighed for at formatere en dato eller dato-tidsværdi baseret på en formatstreng. Formatstrengen angiver, hvordan dato/klokkeslæt skal formateres.
Vi kan derfor bruge denne funktion til at returnere år, måned, dag og uge fra en dato.
Eksempel:
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";
Resultat:
+------+-------+------+------+ | Year | Month | Day | Week | +------+-------+------+------+ | 2035 | 12 | 08 | 48 | +------+-------+------+------+
Der er flere mulige formatspecifikationer for hver datodel. Hver datodel kan returnere en anden værdi, afhængigt af den faktiske angivne formatspecifikation. For eksempel kan du returnere hele månedens navn ved at bruge %M
i stedet for %m
.
Se MariaDB Format Strings for en komplet liste over formatstrenge/specifikationer, der kan bruges med DATE_FORMAT()
.