MariaDB ma kilka funkcji, które umożliwiają wyodrębnianie różnych części daty i godziny z wartości daty/czasu. Możesz ich użyć do oddzielenia każdego składnika daty/czasu do własnej kolumny, jeśli jest to wymagane.
Poniżej znajdują się trzy sposoby wyodrębnienia roku, miesiąca i dnia z wartości daty w MariaDB.
YEAR()
, MONTH()
i DAY()
Funkcje
YEAR()
, MONTH()
i DAY()
funkcje wyodrębniają odpowiednio rok, miesiąc i dzień z wartości daty lub daty i godziny.
Oto przykład użycia tych funkcji do zwrócenia każdego składnika daty w jego własnej kolumnie:
SELECT
YEAR('2025-08-30') AS "Year",
MONTH('2025-08-30') AS "Month",
DAY('2025-08-30') AS "Day";
Wynik:
+------+-------+------+ | Year | Month | Day | +------+-------+------+ | 2025 | 8 | 30 | +------+-------+------+
DAY()
funkcja jest właściwie synonimem DAYOFMONTH()
, więc każdy z nich zwróci ten sam wynik.
Jest też WEEKDAY()
funkcja DAYOFWEEK()
funkcja DAYOFYEAR()
funkcję i DAYNAME()
funkcja, z których każda zwraca inną reprezentację dnia.
Dodatkowo jest MONTHNAME()
funkcja zwracająca nazwę miesiąca zamiast jego numeru.
Oto kolejny przykład, który zawiera te funkcje:
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";
Wynik (przy użyciu wyjścia pionowego):
YEAR: 2025 MONTH: 8 MONTHNAME: August DAY: 30 DAYOFMONTH: 30 WEEKDAY: 5 DAYOFWEEK: 7 DAYOFYEAR: 242 DAYNAME: Saturday
Możesz także użyć funkcji takich jak WEEK()
aby zwrócić numer tygodnia i QUARTER()
aby zwrócić kwartał.
Przykład:
SELECT
WEEK('2025-08-30') AS "Week",
QUARTER('2025-08-30') AS "Quarter";
Wynik:
+------+---------+ | Week | Quarter | +------+---------+ | 34 | 3 | +------+---------+
WEEK()
funkcja przyjmuje drugi argument, który pozwala określić tryb. Może to zmienić wynikowy numer tygodnia, w zależności od rzeczywistej daty. Zobacz, jak WEEK()
Działa w MariaDB, aby uzyskać więcej informacji i przykład.
EXTRACT()
Funkcja
EXTRACT()
funkcja pozwala na wyodrębnienie określonej jednostki z wartości daty/czasu. Dlatego możesz go użyć do wyodrębnienia roku, miesiąca i dnia z daty (a także tygodnia i kwartału, jeśli to konieczne).
Przykład:
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";
Wynik:
+------+-------+------+------+---------+ | Year | Month | Day | Week | Quarter | +------+-------+------+------+---------+ | 2023 | 3 | 12 | 11 | 1 | +------+-------+------+------+---------+
DATE_FORMAT()
Funkcja
DATE_FORMAT()
Funkcja umożliwia sformatowanie wartości daty lub daty i godziny na podstawie ciągu formatującego. Ciąg formatu określa sposób formatowania daty/godziny.
Dlatego możemy użyć tej funkcji, aby zwrócić rok, miesiąc, dzień i tydzień od daty.
Przykład:
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";
Wynik:
+------+-------+------+------+ | Year | Month | Day | Week | +------+-------+------+------+ | 2035 | 12 | 08 | 48 | +------+-------+------+------+
Istnieje kilka możliwych specyfikatorów formatu dla każdej części daty. Każda część daty może zwrócić inną wartość, w zależności od dostarczonego specyfikatora formatu. Na przykład możesz zwrócić pełną nazwę miesiąca za pomocą %M
zamiast %m
.
Zobacz ciągi formatujące MariaDB, aby uzyskać pełną listę ciągów formatujących/specyfikatorów, których można używać z DATE_FORMAT()
.