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

MySQLで日時を再フォーマットする方法|DATE_FORMAT関数の使い方

MySQLで日時(datetime)の表示形式を変更したい場合は、DATE_FORMAT() 関数を使用します。MySQLはデフォルトで「yyyy-mm-dd」形式の日時を返しますが、この関数を使えば任意の形式に自由に変換できます。

サンプルテーブルの作成

まず、テーブルを作成します。

mysql> create table DemoTable1558
    -> (
    -> EmployeeJoiningDate datetime
    -> );
Query OK, 0 rows affected (1.10 sec)

レコードの挿入

続いて、INSERT文を使ってテーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable1558 values(CURDATE());
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1558 values(NOW());
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1558 values('2018-01-10');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1558 values('2017-12-31');
Query OK, 1 row affected (0.18 sec)

登録データの確認

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

mysql> select * from DemoTable1558;

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

+---------------------+
| EmployeeJoiningDate |
+---------------------+
| 2019-10-13 00:00:00 |
| 2019-10-13 17:55:33 |
| 2018-01-10 00:00:00 |
| 2017-12-31 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

DATE_FORMAT()で日時の形式を変更する

以下のクエリを実行すると、日時を「dd-mm-yyyy」形式に再フォーマットできます。

mysql> select date_format(EmployeeJoiningDate,'%d-%m-%Y') as changeFormat from DemoTable1558;

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

+--------------+
| changeFormat |
+--------------+
| 13-10-2019  |
| 13-10-2019  |
| 10-01-2018  |
| 31-12-2017  |
+--------------+
4 rows in set (0.00 sec)

よく使われる書式指定子の一覧

DATE_FORMAT()では、さまざまな書式指定子を組み合わせて出力形式を細かく制御できます。代表的な指定子は以下のとおりです。

  • %Y:4桁の年(例:2024)
  • %y:2桁の年(例:24)
  • %m:2桁の月(01〜12)
  • %c:月(1〜12)
  • %d:2桁の日(01〜31)
  • %e:日(1〜31)
  • %H:24時間制の時(00〜23)
  • %i:分(00〜59)
  • %s:秒(00〜59)

たとえば「date_format(カラム名,'%Y年%m月%d日')」のように指定すれば、日本語表記への変換も簡単に行えます。用途に応じて書式指定子を組み合わせて活用してください。

  1. MySQLで日時(DATETIME)を簡単に挿入する方法

    MySQLコマンドラインでDATETIMEを挿入する基本構文MySQLでは、コマンドラインから日時(DATETIME型)の値を簡単に挿入できます。基本的な構文は以下のとおりです。INSERT INTO テーブル名 VALUES(日時の値);日時の値は「YYYY-MM-DD HH:MM:SS」形式で文字列として指定するのが一般的です。手順1:テーブルを作成するまず、DATETIME型のカラムを持つテーブルを作成しましょう。mysql> CREATE TABLE DemoTable(    DateOfBirth DATETIME);Query OK,

  2. MySQLでchar型カラムをdatetime型に変換する方法をわかりやすく解説

    MySQLでは、char型として保存された日付文字列をdatetime形式に変換したいケースがあります。本記事では、REPLACE関数とSTR_TO_DATE関数を組み合わせて、「12/31/2017 10:50」のような米国式の日付文字列を「2017-12-31 10:50:00」というdatetime形式へ変換する手順を、実際のSQLと実行結果付きで解説します。サンプルテーブルの作成まず、テーブルを作成します。ここでは配送日(ShippingDate)をあえてchar型として宣言しています。mysql> create table DemoTable1472  &n