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 | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+