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