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

MySQLでDATETIME型から日付のみを抽出する方法

MySQLのDATETIME型カラムから日付部分だけを取り出したい場合、DATE_FORMAT()関数と書式指定子を組み合わせるのが便利です。使用する主な書式指定子は以下の通りです。

  • %d … 日(01〜31)
  • %m … 月(01〜12)
  • %Y … 年(4桁)

それでは、実際にサンプルテーブルを作成して確認してみましょう。

1. テーブルの作成

mysql> create table DemoTable
(
    AdmissionDate datetime
);
Query OK, 0 rows affected (0.52 sec)

DATETIME型のカラム「AdmissionDate」を持つテーブルを作成しました。

2. レコードの挿入

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

mysql> insert into DemoTable values('2019-07-21 12:34:56');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2016-08-18 10:00:02');
Query OK, 1 row affected (0.51 sec)
mysql> insert into DemoTable values('2018-01-03 11:02:20');
Query OK, 1 row affected (0.12 sec)

3. テーブルの中身を確認

SELECT文ですべてのレコードを表示します。

mysql> select *from DemoTable;

実行結果は以下のようになります。

+---------------------+
| AdmissionDate       |
+---------------------+
| 2019-07-21 12:34:56 |
| 2016-08-18 10:00:02 |
| 2018-01-03 11:02:20 |
+---------------------+
3 rows in set (0.00 sec)

4. 日付のみを取得するクエリ

ここからが本題です。DATE_FORMAT()関数を使って、日付のみを「日.月.年」の形式で取得します。

mysql> select date_format(AdmissionDate,'%d.%m.%Y') AS Date from DemoTable;

実行結果:

+------------+
| Date       |
+------------+
| 21.07.2019 |
| 18.08.2016 |
| 03.01.2018 |
+------------+
3 rows in set (0.00 sec)

補足:その他の方法

書式を指定せずに単純に日付だけを取り出したい場合は、DATE()関数を使う方法もあります。

mysql> select DATE(AdmissionDate) AS Date from DemoTable;

この場合は「2019-07-21」のように標準形式(YYYY-MM-DD)で結果が返されます。表示形式を自由にコントロールしたいならDATE_FORMAT()、シンプルに日付型として取得したいならDATE()関数と、用途に応じて使い分けるとよいでしょう。

  1. 【PHP】MySQLのDATETIME型から日付だけを抽出して変数に代入する方法

    MySQLのDATETIME型フィールド(例:2018-02-13 13:10:15)から「日付だけ」を取り出したい場合、PHPではDateTimeクラスを使うのが最もシンプルで確実な方法です。SQL側でDATE_FORMAT()を使う方法もありますが、PHP側で柔軟にフォーマットを制御できるDateTimeクラスの利用がおすすめです。DateTime::createFromFormat() の基本構文DateTimeクラスの静的メソッド createFromFormat() を使うと、指定した形式の日時文字列からDateTimeオブジェクトを生成できます。その後、format() メソッドで

  2. C#のDateTimeオブジェクトから日付部分のみを取得する方法

    C#のDateTimeオブジェクトには日付と時刻の両方の情報が含まれていますが、用途によっては日付部分だけが必要になることがあります。ここでは、DateTimeから日付のみを取り出す代表的な4つの方法を解説します。主な取得方法ToShortDateString()メソッド現在のDateTimeオブジェクトの値を、短い形式の日付文字列に変換します。戻り値は、システムのカルチャ(地域)設定に基づいた短い日付表現の文字列です。ToLongDateString()メソッド現在のDateTimeオブジェクトの値を、長い形式(年・月・日をすべて含む詳細な表記)の日付文字列に変換します。こちらもカルチャ設定