MariaDBの日付から月の名前を返す3つの方法があります。
MONTHNAME() 機能
MONTHNAME() 関数は、日付から月の名前を返すために特別に設計されています。これを行うには、関数を呼び出すときに関数に日付を渡します。完全な月の名前が返されます。
例:
SELECT MONTHNAME('2021-08-19'); 結果:
+-------------------------+
| MONTHNAME('2021-08-19') |
+-------------------------+
| August |
+-------------------------+
月の名前に使用される言語は、lc_time_namesの値によって制御されます システム変数。 MONTHNAME()を参照してください これが出力にどのように影響するかの例については。
DATE_FORMAT() 機能
DATE_FORMAT() 関数は、指定された日付を指定された形式にフォーマットします。関数を呼び出すときに、日付と形式を指定します。
%Mを渡すと、完全な月の名前を返すことができます フォーマット文字列として。
例:
SELECT DATE_FORMAT('2021-08-19', '%M'); 結果:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%M') |
+---------------------------------+
| August |
+---------------------------------+
MONTHNAME()と同様 、月の名前に使用される言語は、lc_time_namesの値によって制御されます システム変数。ただし、DATE_FORMAT() 関数は、ロケールを指定できるオプションの3番目の引数を受け入れます。
ロケールを指定する例は次のとおりです。
SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES'); 結果:
+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%M', 'ca_ES') |
+------------------------------------------+
| agost |
+------------------------------------------+ 短い月の名前
%bを渡す DATE_FORMAT()へ 関数は短い月の名前を返します。
例:
SELECT DATE_FORMAT('2021-08-19', '%b'); 結果:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%b') |
+---------------------------------+
| Aug |
+---------------------------------+
これは、MONTHNAME()で複製できます。 LEFT()を使用して関数 月の名前から最初の3文字を取得します。
例:
SELECT LEFT(MONTHNAME('2021-08-19'), 3); 結果:
+----------------------------------+
| LEFT(MONTHNAME('2021-08-19'), 3) |
+----------------------------------+
| Aug |
+----------------------------------+
MONTHNAME()の結果を変換することで、同じ概念を実現できます。 CAST()のような関数を使用して3文字のデータ型に変換します 。
ただし、このアプローチはen_USで機能しますが 、他の言語で常に機能するとは限りません。例:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
MONTHNAME('2021-08-19') AS "Full"; 結果:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+