MySQL ma wiele różnych funkcji, które umożliwiają nam pobieranie różnych części daty – takich jak dzień, miesiąc i rok – od daty.
DATE_FORMAT()
Funkcja
DATE_FORMAT()
funkcja jest świetna, jeśli chcesz zwrócić części daty w jednym polu.
Przykład:
SELECT DATE_FORMAT('2035-12-19', '%W, %D %M %Y');
Wynik:
Wednesday, 19th December 2035
Możesz również zwrócić tylko krótkie nazwy dni i miesięcy, jeśli jest to pożądany wynik:
SELECT DATE_FORMAT('2035-12-19', '%a, %D %b %Y');
Wynik:
Wed, 19th Dec 2035
Lub możesz zwrócić numery dni miesiąca:
SELECT DATE_FORMAT('2035-12-19', '%d/%c/%Y');
Wynik:
19/12/2035
W razie potrzeby możesz również zwrócić każdą część daty w osobnym polu:
SELECT
DATE_FORMAT('2035-12-19', '%d') AS Day,
DATE_FORMAT('2035-12-19', '%c') AS Month,
DATE_FORMAT('2035-12-19', '%Y') AS Year;
Wynik:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Zobacz pełną listę specyfikatorów formatu, aby uzyskać pełny opis specyfikatorów formatu, których można użyć do skonstruowania ciągu formatu.
DATE_FORMAT()
akceptuje również opcjonalny argument ustawień regionalnych, którego można użyć do określenia języka nazw dnia i miesiąca. Zobacz MySQL DATE_FORMAT()
Więcej przykładów.
EXTRACT()
Funkcja
EXTRACT()
funkcja pozwala na wyodrębnienie określonej jednostki z daty. Dlatego możesz go użyć do wyodrębnienia dnia, miesiąca i roku (a także innych jednostek) z daty.
Przykład:
SELECT
EXTRACT(DAY FROM '2035-12-19') AS Day,
EXTRACT(MONTH FROM '2035-12-19') AS Month,
EXTRACT(YEAR FROM '2035-12-19') AS Year;
Wynik:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Funkcje zwracania określonej jednostki daty
MySQL ma również kilka bardziej szczegółowych funkcji, które zwracają określoną jednostkę daty.
Poniżej znajduje się lista funkcji, które zwracają dzień, miesiąc i rok od daty.
DAYNAME()
Funkcja
MySQL ma więcej niż jedną funkcję zwracania dnia. Dzieje się tak, ponieważ istnieje więcej niż jeden sposób na przedstawienie dnia. MySQL musi wiedzieć, czy chcesz podać nazwę dnia, numer dnia tygodnia, dzień miesiąca, dzień roku itp.
DAYNAME()
funkcja zwraca nazwę dnia tygodnia:
SELECT DAYNAME('2035-12-19');
Wynik:
Wednesday
DAYOFMONTH()
Funkcja
DAYOFMONTH()
funkcja zwraca numer dnia miesiąca.
Przykład:
SELECT DAYOFMONTH('2035-12-19');
Wynik:
19
DAY()
Funkcja
DAY()
funkcja jest właściwie synonimem DAYOFMONTH()
funkcja.
Przykład:
SELECT DAY('2035-12-19');
Wynik:
19
Zgodnie z oczekiwaniami, ten sam wynik co DAYOFMONTH()
.
DAYOFWEEK()
Funkcja
DAYOFWEEK()
funkcja zwraca indeks dnia tygodnia dla daty, zgodnie ze standardem ODBC (1
=Niedziela, 2
=poniedziałek, …, 7
=sobota).
Przykład:
SELECT DAYOFWEEK('2035-12-19');
Wynik:
4
Zobacz WEEKDAY()
poniżej dla różnych indeksów.
WEEKDAY()
Funkcja
WEEKDAY()
funkcja jest podobna do DAYOFWEEK()
w tym, że zwraca indeks tygodnia dla daty. Różnica polega na tym, że używa innej numeracji indeksów (0
=poniedziałek, 1
=wtorek, … 6
=Niedziela).
Przykład:
SELECT WEEKDAY('2035-12-19');
Wynik:
2
DAYOFYEAR()
Funkcja
DAYOFYEAR()
funkcja zwraca dzień roku dla daty z zakresu 1
do 366
.
Przykład:
SELECT DAYOFYEAR('2035-12-19');
Wynik:
353
MONTH()
Funkcja
MONTH()
funkcja zwraca miesiąc z zakresu 1
do 12
od stycznia do grudnia lub 0
dla dat, które mają zerową część miesiąca (np. 0000-00-00
).
Przykład:
SELECT MONTH('2035-12-19');
Wynik:
12
MONTHNAME()
Funkcja
Jak sama nazwa wskazuje, MONTHNAME()
funkcja zwraca nazwę miesiąca. Język używany w nazwie jest kontrolowany przez wartość lc_time_names
zmienna systemowa.
Przykład:
SELECT MONTHNAME('2035-12-19');
Wynik:
December
YEAR()
Funkcja
YEAR()
funkcja zwraca część daty dotyczącą roku.
Przykład:
SELECT YEAR('2035-12-19');
Wynik:
2035