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() .