MySQLでは、DATE_FORMAT()
を使用できます %b
で機能する 短い月の名前を返すフォーマット指定子。たとえば、Jan
を返すことができます またはFeb
January
の代わりに またはFebruary
。
例
SELECT DATE_FORMAT('2035-01-18', '%b');
結果:
Jan
1年のさまざまな月に実行される別の例を次に示します。
SELECT
DATE_FORMAT('2035-01-18', '%b') AS "1",
DATE_FORMAT('2035-02-18', '%b') AS "2",
DATE_FORMAT('2035-03-18', '%b') AS "3",
DATE_FORMAT('2035-04-18', '%b') AS "4",
DATE_FORMAT('2035-05-18', '%b') AS "5",
DATE_FORMAT('2035-06-18', '%b') AS "6",
DATE_FORMAT('2035-07-18', '%b') AS "7",
DATE_FORMAT('2035-08-18', '%b') AS "8",
DATE_FORMAT('2035-09-18', '%b') AS "9",
DATE_FORMAT('2035-10-18', '%b') AS "10",
DATE_FORMAT('2035-11-18', '%b') AS "11",
DATE_FORMAT('2035-12-18', '%b') AS "12";
結果(垂直出力を使用):
1: Jan 2: Feb 3: Mar 4: Apr 5: May 6: Jun 7: Jul 8: Aug 9: Sep 10: Oct 11: Nov 12: Dec
他の日付と時刻の単位も返すことができますが、この記事では短い月の名前を返す方法について説明しています。
DATE_FORMAT()
で使用できる形式指定子のリストについては、MySQLの日付形式指定子を参照してください。 。
完全な月の名前を短くする
完全な月の名前を短縮する必要がある場合は、いつでもLEFT()
のような関数を使用できます。 最初の3文字だけ(または必要な数だけ)を返します。
例:
SELECT
DATE_FORMAT('2035-09-18', '%M') AS Full,
LEFT(DATE_FORMAT('2035-09-18', '%M'), 3) AS Short;
結果:
+-----------+-------+ | Full | Short | +-----------+-------+ | September | Sep | +-----------+-------+
または、CAST()
のような関数を使用することもできます。 次のように、3文字のみのデータ型に変換するには:
SELECT
DATE_FORMAT('2035-09-18', '%M') AS Full,
CAST(DATE_FORMAT('2035-09-18', '%M') AS CHAR(3)) AS Short;
結果:
+-----------+-------+ | Full | Short | +-----------+-------+ | September | Sep | +-----------+-------+ 1 row in set, 1 warning (0.00 sec)
この場合、より長い値を切り捨てているため、警告が表示されます:
show warnings;
結果:
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect CHAR(3) value: 'September' | +---------+------+------------------------------------------------+
このように月の名前を短くすることは、英語などの言語で作業する場合は問題ありませんが、%b
を使用する場合と同じ結果が返されない場合があることに注意してください。 フォーマット指定子。
私が何を意味するかを示すために、セッションをタイ語を使用するように切り替えると、次のようになります。
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2023-10-25', '%M') AS Full,
LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Truncated,
DATE_FORMAT('2023-10-25', '%b') AS Short;
結果:
+--------------------+-----------+----------+ | Full | Truncated | Short | +--------------------+-----------+----------+ | ตุลาคม | ตุล | ต.ค. | +--------------------+-----------+----------+
完全な月の名前を切り捨てると、%b
を使用した場合とは異なる結果が返されます 短い月の名前を返すフォーマット指定子。