以下は、MariaDBの日付から曜日名を取得するために使用できる3つのアプローチです。
これらのアプローチのうち2つは完全な日の名前を返し、1つは短い日の名前を返します。
DAYNAME()
機能
DAYNAME()
関数は、日付から曜日名を返すために特別に設計されています。関数を呼び出すときに日付を渡すだけで、完全な日の名前が返されます。
例:
SELECT DAYNAME('2021-08-19');
結果:
+-----------------------+ | DAYNAME('2021-08-19') | +-----------------------+ | Thursday | +-----------------------+
日の名前に使用される言語は、lc_time_names
の値によって制御されます システム変数。 DAYNAME()
を参照してください これが出力にどのように影響するかの例については。
DATE_FORMAT()
機能
DATE_FORMAT()
関数は、指定された日付を指定された形式にフォーマットします。関数を呼び出すときに、日付と形式を指定します。
%W
を渡すと、完全な平日の名前を返すことができます フォーマット文字列として。
例:
SELECT DATE_FORMAT('2021-08-19', '%W');
結果:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%W') | +---------------------------------+ | Thursday | +---------------------------------+
DAYNAME()
と同様 、曜日名に使用される言語は、lc_time_names
の値によって制御されます システム変数。ただし、DATE_FORMAT()
関数は、ロケールを指定できるオプションの3番目の引数を受け入れます。
ロケールを指定する例は次のとおりです。
SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES');
結果:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%W', 'ca_ES') | +------------------------------------------+ | dijous | +------------------------------------------+
短い日の名前
%a
を渡す DATE_FORMAT()
へ 関数は短い平日の名前を返します。
例:
SELECT DATE_FORMAT('2021-08-19', '%a');
結果:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%a') | +---------------------------------+ | Thu | +---------------------------------+
これは、DAYNAME()
で複製できます。 LEFT()
を使用して関数 平日の名前から最初の3文字を取得します。
例:
SELECT LEFT(DAYNAME('2021-08-19'), 3);
結果:
+--------------------------------+ | LEFT(DAYNAME('2021-08-19'), 3) | +--------------------------------+ | Thu | +--------------------------------+
CAST()
のような関数を使用しても同じ効果が得られます。 結果を3文字のデータ型に変換します。
ただし、このアプローチはen_US
で機能しますが 、他の言語で常に機能するとは限りません。例:
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";
結果:
+---------+-----------+--------------------------+ | Short 1 | Short 2 | Full | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+