sql >> Databáze >  >> RDS >> Mysql

Jak získat rok a měsíc z data v MySQL

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.


  1. Jak vytvořit seskupenou sestavu pomocí Průvodce sestavou v Accessu 2016

  2. Nejrychlejší způsob, jak spustit stejný dotaz vícekrát na serveru SQL

  3. ORACLE a TRIGGERS (vloženo, aktualizováno, odstraněno)

  4. jaká je escape sekvence pro pomlčku (-) v PostgreSQL