MariaDB má několik funkcí, které vám umožňují extrahovat různé části data a času z hodnot data/času. V případě potřeby je můžete použít k oddělení každé složky data/času do vlastního sloupce.
Níže jsou uvedeny tři způsoby, jak extrahovat rok, měsíc a den z hodnoty data v MariaDB.
YEAR()
, MONTH()
a DAY()
Funkce
YEAR()
, MONTH()
a DAY()
funkce extrahují rok, měsíc a den z hodnoty data nebo data a času.
Zde je příklad použití těchto funkcí k vrácení každé složky data ve vlastním sloupci:
SELECT
YEAR('2025-08-30') AS "Year",
MONTH('2025-08-30') AS "Month",
DAY('2025-08-30') AS "Day";
Výsledek:
+------+-------+------+ | Year | Month | Day | +------+-------+------+ | 2025 | 8 | 30 | +------+-------+------+
DAY()
funkce je ve skutečnosti synonymem pro DAYOFMONTH()
, takže kterýkoli z nich vrátí stejný výsledek.
Je zde také WEEKDAY()
funkce DAYOFWEEK()
funkce DAYOFYEAR()
funkce a DAYNAME()
funkce, z nichž každá vrací jinou reprezentaci dne.
Navíc je tu MONTHNAME()
funkce, která vrací název měsíce namísto jeho čísla.
Zde je další příklad, který tyto funkce zahrnuje:
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";
Výsledek (při použití vertikálního výstupu):
YEAR: 2025 MONTH: 8 MONTHNAME: August DAY: 30 DAYOFMONTH: 30 WEEKDAY: 5 DAYOFWEEK: 7 DAYOFYEAR: 242 DAYNAME: Saturday
Můžete také použít funkce jako WEEK()
vrátíte číslo týdne a QUARTER()
vrátit čtvrtletí.
Příklad:
SELECT
WEEK('2025-08-30') AS "Week",
QUARTER('2025-08-30') AS "Quarter";
Výsledek:
+------+---------+ | Week | Quarter | +------+---------+ | 34 | 3 | +------+---------+
WEEK()
funkce přijímá druhý argument, který umožňuje určit režim. To může změnit výsledné číslo týdne v závislosti na aktuálním datu. Viz Jak WEEK()
Pracuje v MariaDB pro více informací a příklad.
EXTRACT()
Funkce
EXTRACT()
Funkce umožňuje extrahovat zadanou jednotku z hodnoty data/času. Proto jej můžete použít k extrakci roku, měsíce a dne z data (a také týdne a čtvrtletí, pokud je to nutné).
Příklad:
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";
Výsledek:
+------+-------+------+------+---------+ | Year | Month | Day | Week | Quarter | +------+-------+------+------+---------+ | 2023 | 3 | 12 | 11 | 1 | +------+-------+------+------+---------+
DATE_FORMAT()
Funkce
DATE_FORMAT()
Funkce umožňuje formátovat hodnotu data nebo data a času na základě formátovacího řetězce. Formátovací řetězec určuje, jak má být formátován datum/čas.
Tuto funkci tedy můžeme použít k vrácení roku, měsíce, dne a týdne z data.
Příklad:
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";
Výsledek:
+------+-------+------+------+ | Year | Month | Day | Week | +------+-------+------+------+ | 2035 | 12 | 08 | 48 | +------+-------+------+------+
Pro každou část data existuje několik možných specifikátorů formátu. Každá část data může vracet jinou hodnotu v závislosti na skutečném poskytnutém specifikátoru formátu. Například můžete vrátit celý název měsíce pomocí %M
místo %m
.
Úplný seznam formátovacích řetězců/specifikátorů, které lze použít s DATE_FORMAT()
, najdete v části MariaDB Format Strings .