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

MySQLで日時から「時」と「分」だけを表示する方法|DATE_FORMAT関数の使い方

MySQLのDATETIME型カラムから「時」と「分」だけを取り出して表示したい場合は、DATE_FORMAT()関数を使用します。書式指定子として「%H」(時:24時間表記)と「%i」(分)を組み合わせるのがポイントです。

基本構文

時と分だけを表示するには、以下のように書式指定子を設定してDATE_FORMAT()を使用します。

SELECT date_format(カラム名, '%H:%i') AS 別名 FROM テーブル名;

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。

mysql> create table DemoTable1527
    -> (
    -> ArrivalDatetime datetime
    -> );
Query OK, 0 rows affected (0.76 sec)

レコードの挿入

INSERTコマンドを使って、いくつかのデータを登録します。

mysql> insert into DemoTable1527 values('2019-01-10 12:34:45');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1527 values('2018-12-12 11:00:34');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1527 values('2019-03-21 04:55:56');
Query OK, 1 row affected (0.18 sec)

登録データの確認

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

mysql> select * from DemoTable1527;

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

+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2019-01-10 12:34:45 |
| 2018-12-12 11:00:34 |
| 2019-03-21 04:55:56 |
+---------------------+
3 rows in set (0.00 sec)

時と分だけを表示するクエリ

それでは、DATE_FORMAT()を使って「時」と「分」だけを表示するクエリを実行してみましょう。

mysql> select date_format(ArrivalDatetime,'%H:%i') as HourAndMinutes from DemoTable1527;

実行結果:

+----------------+
| HourAndMinutes |
+----------------+
| 12:34          |
| 11:00          |
| 04:55          |
+----------------+
3 rows in set (0.00 sec)

書式指定子の解説

  • %H:時を24時間形式(00〜23)で表示します。
  • %i:分を2桁(00〜59)で表示します。

このように、DATE_FORMAT()の書式指定子を自由に組み合わせれば、「HH:mm:ss」や「hh:mm A(午前・午後付き)」など、用途に応じたさまざまな時刻形式でデータを取得できます。アプリケーション側で整形せずに済むため、表示用のクエリとしては非常に便利な関数です。

  1. MySQLでNULLを含む列からNULL以外(NOT NULL)の値だけを抽出して表示する方法

    MySQLのIS NOT NULLを使ってNULL以外の値のみを表示するMySQLで、NULLとNULL以外のレコードが混在する列からNULL以外の値だけを取得したい場合は、IS NOT NULL演算子を使用します。この記事では、実際にテーブルを作成しながら手順を解説します。1. テーブルの作成まず、日付型の列を持つサンプルテーブルを作成します。mysql> create table DemoTable1      (      DueDate date      ); Query OK, 0 ro

  2. MySQL REGEXP句で括弧をエスケープする方法|「()」付きの特定の値だけを抽出する

    MySQL REGEXP句で括弧をエスケープして特定の値を抽出する方法 MySQLのREGEXP句で正規表現を使う場合、括弧「(」と「)」はグループ化を意味する特殊文字(メタ文字)として扱われます。そのため、文字列に含まれる実際の括弧を検索したいときは、適切にエスケープする必要があります。本記事では、文字クラス「[(]」「[)]」を使って括弧をエスケープし、「()」で囲まれた値を含むレコードだけを抽出する方法を、実際のサンプルとともに解説します。 1. サンプルテーブルを作成する まず、検索対象となるテーブルを作成します。 mysql> create table DemoTable19