MySQL má spoustu různých funkcí, které nám umožňují získat různé části data – jako je den, měsíc a rok – z data.
DATE_FORMAT()
Funkce
DATE_FORMAT()
funkce je skvělá, pokud chcete vrátit části data v jednom poli.
Příklad:
SELECT DATE_FORMAT('2035-12-19', '%W, %D %M %Y');
Výsledek:
Wednesday, 19th December 2035
Můžete také vrátit pouze krátké názvy dnů a měsíců, pokud je to požadovaný výsledek:
SELECT DATE_FORMAT('2035-12-19', '%a, %D %b %Y');
Výsledek:
Wed, 19th Dec 2035
Nebo můžete vrátit čísla dne a měsíce:
SELECT DATE_FORMAT('2035-12-19', '%d/%c/%Y');
Výsledek:
19/12/2035
V případě potřeby můžete také vrátit každou část data do vlastního pole:
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;
Výsledek:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Podívejte se na tento úplný seznam specifikátorů formátu pro úplný přehled specifikátorů formátu, které můžete použít k vytvoření formátovacího řetězce.
DATE_FORMAT()
také přijímá volitelný argument národního prostředí, který můžete použít k určení jazyka názvů dnů a měsíců. Viz MySQL DATE_FORMAT()
Příklady pro více.
EXTRACT()
Funkce
EXTRACT()
Funkce umožňuje extrahovat zadanou jednotku z data. Proto jej můžete použít k extrahování dne, měsíce a roku (a také dalších jednotek) z data.
Příklad:
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;
Výsledek:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Funkce pro vrácení konkrétní jednotky data
MySQL má také některé specifičtější funkce, které vracejí konkrétní jednotku data.
Níže je uveden seznam funkcí, které vracejí den, měsíc a rok z data.
DAYNAME()
Funkce
MySQL má více než jednu funkci pro vrácení dne. Je to proto, že existuje více než jeden způsob, jak reprezentovat den. MySQL potřebuje vědět, zda chcete název dne, číslo dne v týdnu, den v měsíci, den v roce atd.
DAYNAME()
funkce vrací název dne v týdnu:
SELECT DAYNAME('2035-12-19');
Výsledek:
Wednesday
DAYOFMONTH()
Funkce
DAYOFMONTH()
funkce vrací číslo dne v měsíci.
Příklad:
SELECT DAYOFMONTH('2035-12-19');
Výsledek:
19
DAY()
Funkce
DAY()
Funkce je ve skutečnosti synonymem pro DAYOFMONTH()
funkce.
Příklad:
SELECT DAY('2035-12-19');
Výsledek:
19
Podle očekávání stejný výsledek jako DAYOFMONTH()
.
DAYOFWEEK()
Funkce
DAYOFWEEK()
funkce vrací index dne v týdnu pro datum, jak je určeno standardem ODBC (1
=neděle, 2
=pondělí, …, 7
=sobota).
Příklad:
SELECT DAYOFWEEK('2035-12-19');
Výsledek:
4
Viz WEEKDAY()
níže pro různé indexování.
WEEKDAY()
Funkce
WEEKDAY()
funkce je podobná funkci DAYOFWEEK()
tím, že vrátí týdenní index pro datum. Rozdíl je v tom, že používá jiné indexové číslování (0
=pondělí, 1
=úterý, … 6
=neděle).
Příklad:
SELECT WEEKDAY('2035-12-19');
Výsledek:
2
DAYOFYEAR()
Funkce
DAYOFYEAR()
funkce vrací den v roce pro datum v rozsahu 1
na 366
.
Příklad:
SELECT DAYOFYEAR('2035-12-19');
Výsledek:
353
MONTH()
Funkce
MONTH()
funkce vrací měsíc v rozsahu 1
do 12
za leden až prosinec nebo 0
pro data, která mají část nula měsíce (například 0000-00-00
).
Příklad:
SELECT MONTH('2035-12-19');
Výsledek:
12
MONTHNAME()
Funkce
Jak název napovídá, MONTHNAME()
funkce vrací název měsíce. Jazyk použitý pro název je řízen hodnotou lc_time_names
systémová proměnná.
Příklad:
SELECT MONTHNAME('2035-12-19');
Výsledek:
December
YEAR()
Funkce
YEAR()
funkce vrací rok část data.
Příklad:
SELECT YEAR('2035-12-19');
Výsledek:
2035