MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで日付を選択してテキスト形式にフォーマットする方法

MySQLから日付データを選択し、任意のテキスト形式に整形するには、DATE_FORMAT()関数を使用します。まずは基本となる構文を見ていきましょう。

基本構文

select date_format(カラム名, '%e %b %y') from テーブル名;

それでは、実際にサンプルテーブルを作成しながら動作を確認していきます。

サンプルテーブルの作成

mysql> create table DemoTable
    -> (
    -> DueDate date
    -> );
Query OK, 0 rows affected (0.52 sec)

レコードの挿入

insertコマンドを使用して、テーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable values('2019-01-11');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2019-12-21');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-09-15');
Query OK, 1 row affected (0.07 sec)

登録済みレコードの確認

select文でテーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

実行すると、以下のような出力が得られます。

+------------+
| DueDate    |
+------------+
| 2019-01-11 |
| 2019-12-21 |
| 2019-09-15 |
+------------+
3 rows in set (0.00 sec)

日付をテキスト形式にフォーマットする

MySQLから日付を選択し、「11 Jan 19」のようなテキスト形式に整形するには、次のクエリを実行します。

mysql> select date_format(DueDate, '%e %b %y') from DemoTable;

実行結果は以下の通りです。

+----------------------------------+
| date_format(DueDate, '%e %b %y') |
+----------------------------------+
| 11 Jan 19                        |
| 21 Dec 19                        |
| 15 Sep 19                        |
+----------------------------------+
3 rows in set (0.00 sec)

フォーマット指定子の解説

今回使用した主な書式指定子は以下の通りです。

  • %e:日(1〜31、先頭にゼロを付けない)
  • %b:月の省略形(Jan、Feb、Mar など)
  • %y:2桁の年(19、20 など)

これらの指定子を組み合わせることで、用途に応じた柔軟な日付表示が可能になります。たとえば「%Y年%m月%d日」と指定すれば、「2019年01月11日」のように日本語環境で馴染みのある形式で出力することもできます。日付の見せ方を変えたい場合には、DATE_FORMAT()関数が非常に便利です。

  1. MySQLで現在の日付と翌日のレコードを条件に特定の列を抽出する方法

    MySQLでは、CURDATE()関数を使うことで、現在の日付やその翌日に該当するレコードを簡単に抽出できます。この記事では、実際のサンプルを使いながら、現在の日付と翌日の出荷日を持つレコードから特定の列を選択して取得する方法を解説します。 1. 現在の日付を確認する まず、curdate()関数で現在の日付を取得してみましょう。 mysql> select curdate(); 実行すると、以下のような結果が表示されます。 +------------+ | curdate() | +------------+ | 2019-12-15 | +------------+ 1 row

  2. MySQLで日付形式から数値の日付値を抽出する方法

    MySQLで日付形式から数値の日付値を抽出する方法MySQLで「31-Jan-19」のような文字列として保存された日付データを数値(UNIXタイムスタンプ)に変換したい場合は、UNIX_TIMESTAMP() 関数と STR_TO_DATE() 関数を組み合わせて使用します。基本的な構文は以下の通りです。select UNIX_TIMESTAMP(STR_TO_DATE(yourColumnName, %d-%b-%y)) as anyAliasName from yourTableName;サンプルテーブルの作成まず、動作確認用のテーブルを作成します。mysql> create tab