sql >> Databáze >  >> RDS >> MariaDB

3 způsoby, jak získat název dne z data v MariaDB

Níže jsou uvedeny tři přístupy, které můžete použít k získání názvu dne z data v MariaDB.

Dva z těchto přístupů vrátí název celého dne a jeden vrátí název krátkého dne.

DAYNAME() Funkce

DAYNAME() funkce je navržena speciálně pro vrácení názvu dne z data. Jednoduše zadejte datum při volání funkce a funkce vrátí celý název dne.

Příklad:

SELECT DAYNAME('2021-08-19');

Výsledek:

+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday              |
+-----------------------+

Jazyk použitý pro název dne je řízen hodnotou lc_time_names systémová proměnná. Viz DAYNAME() pro příklad toho, jak to ovlivňuje výstup.

DATE_FORMAT() Funkce

DATE_FORMAT() funkce formátuje dané datum do zadaného formátu. Datum a formát zadáte při volání funkce.

Můžete vrátit celý název dne v týdnu předáním %W jako formátovací řetězec.

Příklad:

SELECT DATE_FORMAT('2021-08-19', '%W');

Výsledek:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday                        |
+---------------------------------+

Stejně jako u DAYNAME() , jazyk použitý pro název dne je řízen hodnotou lc_time_names systémová proměnná. Nicméně DATE_FORMAT() funkce přijímá volitelný třetí argument, který vám umožňuje určit národní prostředí.

Zde je příklad určení národního prostředí:

SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES');

Výsledek:

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous                                   |
+------------------------------------------+

Název krátkého dne

Předání %a do DATE_FORMAT() funkce vrací krátký název dne v týdnu.

Příklad:

SELECT DATE_FORMAT('2021-08-19', '%a');

Výsledek:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu                             |
+---------------------------------+

To lze replikovat pomocí DAYNAME() pomocí LEFT() uchopit první 3 znaky z názvu dne v týdnu.

Příklad:

SELECT LEFT(DAYNAME('2021-08-19'), 3);

Výsledek:

+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu                            |
+--------------------------------+

Stejného efektu lze také dosáhnout použitím funkce jako CAST() převést výsledek na datový typ se třemi znaky.

Ačkoli tento přístup funguje v en_US , nemusí to vždy fungovat v jiných jazycích. Například:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2021-08-19', '%a') AS "Short 1",
    LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
    DAYNAME('2021-08-19') AS "Full";

Výsledek:

+---------+-----------+--------------------------+
| Short 1 | Short 2   | Full                     |
+---------+-----------+--------------------------+
| พฤ.     | พฤห       | พฤหัสบดี                   |
+---------+-----------+--------------------------+

  1. Jaký je rozdíl mezi AS a IS v uložené proceduře Oracle?

  2. Jak řadit přes oddíl v MySQL

  3. Dotaz pro získání všech řádků z předchozího měsíce

  4. Jak provést aktualizaci + připojit se k PostgreSQL?