Problém:
Chcete získat rok a měsíc od daného data v databázi MySQL.
Příklad:
Naše databáze obsahuje tabulku s názvem dates s údaji ve sloupcích id a date .
| id | datum |
|---|---|
| 1 | 21. 4. 2008 |
| 2 | 14. 12. 1987 |
Pojďme extrahovat year a month od data.
Řešení 1:
SELECT EXTRACT(YEAR FROM date) AS year, EXTRACT(MONTH FROM date) AS month FROM dates;
Výsledek je:
| rok | měsíc |
|---|---|
| 2008 | 4 |
| 1987 | 12 |
Diskuse:
Chcete-li získat sloupce roku a měsíce, použijte EXTRACT(part FROM date) funkce. V tomto řešení je argument části nahrazen YEAR a MONTH získat year a month samostatně, každý ve svém vlastním sloupci.
Můžete se dozvědět více o EXTRACT() v oficiální dokumentaci MySQL.
Řešení 2:
SELECT EXTRACT(YEAR_MONTH FROM date) AS year_and_month FROM dates;
Výsledek je:
| year_and_month |
|---|
| 200804 |
| 198712 |
Diskuse:
Toto řešení funguje úplně stejně jako předchozí, ale YEAR_MONTH se používá k tomu, aby se rok a měsíc dostaly dohromady v jednom sloupci, místo aby byly odděleny. Všimněte si, že hodnoty roku a měsíce nejsou od sebe odděleny.
Řešení 3:
SELECT YEAR(date) AS year, MONTH(date) AS month FROM dates;
Výsledek je:
| rok | měsíc |
|---|---|
| 2008 | 4 |
| 1987 | 12 |
Diskuse:
Tentokrát YEAR() a MONTH() funkce slouží k vytvoření dvou sloupců. YEAR() vrátí rok a MONTH() vrátí měsíc jako číslo.
Řešení 4:
SELECT YEAR(date) AS year, MONTHNAME(date) AS month FROM dates;
Výsledek je:
| rok | měsíc |
|---|---|
| 2008 | Duben |
| 1987 | Prosinec |
Diskuse:
Chcete-li získat název měsíce, použijte MONTHNAME() funkce. Ve výsledku se místo čísla měsíce zobrazí název měsíce.
Řešení 5:
SELECT DATE_FORMAT(date, '%Y-%m') AS year_and_month FROM dates;
Výsledek je:
| year_and_month |
|---|
| 2008-04 |
| 1987-12 |
Diskuse:
Použijte DATE_FORMAT() funkce pro zobrazení date hodnoty v určitém formátu. Trvá to date jako první argument a řetězec popisující požadovaný formát data jako druhý argument. V našem případě řetězec '%Y-%m ', %Y vrátí rok, ‘ - ’ se používá jako oddělovač a %m vrátí měsíc číselně (lze jej nahradit %M získat název měsíce).
Můžete se dozvědět více o DATE_FORMAT() v oficiální dokumentaci MySQL.