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

Vraťte den, měsíc a rok v MySQL

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

  1. Změna výchozího formátu data a času v jedné databázi na serveru SQL Server

  2. Android studio getSlotFromBufferLocked:neznámá chyba vyrovnávací paměti

  3. Jak odstranit všechny neabecední znaky z řetězce na serveru SQL?

  4. Jaký je nejlepší způsob, jak zkrátit datum na serveru SQL Server?