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 .