Problem:
Chcesz uzyskać rok i miesiąc z podanej daty w bazie danych MySQL.
Przykład:
Nasza baza danych zawiera tabelę o nazwie dates
z danymi w kolumnach id
i date
.
id | data |
---|---|
1 | 2008-04-21 |
2 | 14.12.1987 |
Wyodrębnijmy year
i month
od daty.
Rozwiązanie 1:
SELECT EXTRACT(YEAR FROM date) AS year, EXTRACT(MONTH FROM date) AS month FROM dates;
Wynik:
rok | miesiąc |
---|---|
2008 | 4 |
1987 | 12 |
Dyskusja:
Aby uzyskać kolumny roku i miesiąca, użyj EXTRACT(part FROM date)
funkcjonować. W tym rozwiązaniu argument part jest zastępowany przez YEAR
i MONTH
aby uzyskać year
i month
osobno, każdy w osobnej kolumnie.
Możesz dowiedzieć się więcej o EXTRACT()
w oficjalnej dokumentacji MySQL.
Rozwiązanie 2:
SELECT EXTRACT(YEAR_MONTH FROM date) AS year_and_month FROM dates;
Wynik:
rok_i_miesiąc |
---|
200804 |
198712 |
Dyskusja:
To rozwiązanie działa dokładnie tak samo jak poprzednie, ale YEAR_MONTH
służy do zebrania roku i miesiąca w jednej kolumnie, zamiast umieszczania ich osobno. Zauważ, że wartości roku i miesiąca nie są od siebie oddzielone.
Rozwiązanie 3:
SELECT YEAR(date) AS year, MONTH(date) AS month FROM dates;
Wynik:
rok | miesiąc |
---|---|
2008 | 4 |
1987 | 12 |
Dyskusja:
Tym razem YEAR()
i MONTH()
funkcje służą do tworzenia dwóch kolumn. YEAR()
zwraca rok i MONTH()
zwraca miesiąc jako liczbę.
Rozwiązanie 4:
SELECT YEAR(date) AS year, MONTHNAME(date) AS month FROM dates;
Wynik:
rok | miesiąc |
---|---|
2008 | Kwiecień |
1987 | grudzień |
Dyskusja:
Aby uzyskać nazwę miesiąca, użyj MONTHNAME()
funkcjonować. Wynik wyświetla nazwę miesiąca zamiast numeru miesiąca.
Rozwiązanie 5:
SELECT DATE_FORMAT(date, '%Y-%m') AS year_and_month FROM dates;
Wynik:
rok_i_miesiąc |
---|
2008-04 |
1987-12 |
Dyskusja:
Użyj DATE_FORMAT()
funkcja wyświetlania date
wartości w określonym formacie. Zajmuje date
jako pierwszy argument i łańcuch opisujący żądany format daty jako drugi argument. W naszym przypadku ciąg '%Y-%m
', %Y
zwraca rok, ‘ -
” jest używany jako separator, a %m
zwraca miesiąc numerycznie (można go zastąpić przez %M
aby uzyskać nazwę miesiąca).
Możesz dowiedzieć się więcej o DATE_FORMAT()
w oficjalnej dokumentacji MySQL.