V MariaDB můžete použít DATE_FORMAT() funkce pro vrácení různých částí data z data. Jedna z věcí, kterou můžete vrátit, je název krátkého dne. Například Tue nebo Wed (místo Tuesday nebo Wednesday ).
Specifikátor formátu „Short Day Name“ (%a )
Klíč k vrácení krátkého názvu dne při použití DATE_FORMAT() funkcí je použít příslušný specifikátor formátu.
V MariaDB je specifikátor formátu pro název krátkého dne:%a
Příklad
Zde je příklad k demonstraci:
SELECT DATE_FORMAT('2023-07-25', '%a'); Výsledek:
+---------------------------------+
| DATE_FORMAT('2023-07-25', '%a') |
+---------------------------------+
| Tue |
+---------------------------------+ Zde je další příklad, který prochází různými dny v týdnu:
SELECT
DATE_FORMAT('2023-07-24', '%a') AS "1",
DATE_FORMAT('2023-07-25', '%a') AS "2",
DATE_FORMAT('2023-07-26', '%a') AS "3",
DATE_FORMAT('2023-07-27', '%a') AS "4",
DATE_FORMAT('2023-07-28', '%a') AS "5",
DATE_FORMAT('2023-07-29', '%a') AS "6",
DATE_FORMAT('2023-07-30', '%a') AS "7"; Výsledek:
+------+------+------+------+------+------+------+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | +------+------+------+------+------+------+------+ | Mon | Tue | Wed | Thu | Fri | Sat | Sun | +------+------+------+------+------+------+------+
Můžete vrátit i jiné jednotky data a času, ale tento článek je konkrétně o vrácení názvu krátkého dne. Viz MariaDB Format Strings pro seznam specifikátorů formátu, které lze použít s DATE_FORMAT() .
Další přístupy
Existují další způsoby, jak získat název krátkého dne z data, které zahrnují odříznutí první části dne.
To však může být náchylnější k chybám než výše uvedená metoda (a navíc je komplikovanější). Při použití této metody můžete získat neočekávané výsledky, zejména při práci s různými jazyky.
Zde je několik příkladů, které demonstrují, co tím myslím.
Místo použití %a specifikátor formátu, jako jsme to udělali v předchozím příkladu, mohli bychom použít %W specifikátor formátu, který vrátí celý název dne, a poté vrátí výsledek zkrátí pomocí funkce jako LEFT() .
Příklad:
SELECT
DATE_FORMAT('2023-07-25', '%W') AS Full,
LEFT(DATE_FORMAT('2023-07-25', '%W'), 3) AS Short; Výsledek:
+---------+-------+ | Full | Short | +---------+-------+ | Tuesday | Tue | +---------+-------+
Alternativně bychom mohli použít funkci jako CAST() převést na datový typ s pouze třemi znaky, jako je tento:
SELECT
DATE_FORMAT('2023-07-25', '%W') AS Full,
CAST(DATE_FORMAT('2023-07-25', '%W') AS CHAR(3)) AS Short; Výsledek:
+---------+-------+ | Full | Short | +---------+-------+ | Tuesday | Tue | +---------+-------+
To funguje dobře při práci s anglickým jazykem (a možná i některými dalšími jazyky). Ale podívejme se, co se stane, když přepneme na jiný jazyk – řekněme japonštinu:
SELECT
DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short; Výsledek:
+-----------+-----------+ | Full | Short | +-----------+-----------+ | 火曜日 | 火曜日 | +-----------+-----------+
V tomto případě není rozdíl.
Naproti tomu zde je to, co se stane, když použijeme %a specifikátor formátu pro návrat krátkého názvu dne:
SELECT
DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short; Výsledek:
+-----------+-------+ | Full | Short | +-----------+-------+ | 火曜日 | 火 | +-----------+-------+
Takže bych doporučil použít %a specifikátor formátu, kdykoli je to možné.