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

MySQLで時刻をHH:MM形式で取得する方法

MySQLで時刻をHH:MM形式で取得する方法

MySQLから時刻を「HH:MM」形式で取得したい場合は、DATE_FORMAT()関数を使用します。この関数は日付や時刻の値を任意の書式に変換できる便利な関数です。実際の使い方を理解するために、まずサンプルとなるテーブルを作成しましょう。

1. テーブルの作成

以下のクエリを実行して、ユーザーの到着時刻を記録するテーブルを作成します。

mysql> create table retrieveTimeDemo
-> (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserArrivalTime datetime
-> );
Query OK, 0 rows affected (0.57 sec)

UserArrivalTimeカラムはdatetime型として定義しており、日付と時刻の両方を保存できます。

2. レコードの挿入

次に、INSERTコマンドを使用してテーブルにサンプルデータを追加します。

mysql> insert into retrieveTimeDemo(UserArrivalTime) values('2013-01-21 13:45:34');
Query OK, 1 row affected (0.16 sec)
mysql> insert into retrieveTimeDemo(UserArrivalTime) values('2014-11-25 11:40:56');
Query OK, 1 row affected (0.11 sec)
mysql> insert into retrieveTimeDemo(UserArrivalTime) values('2016-10-27 17:30:40');
Query OK, 1 row affected (0.12 sec)
mysql> insert into retrieveTimeDemo(UserArrivalTime) values('2017-02-21 18:03:06');
Query OK, 1 row affected (0.19 sec)
mysql> insert into retrieveTimeDemo(UserArrivalTime) values('2018-04-24 22:30:32');
Query OK, 1 row affected (0.18 sec)

3. 全レコードの表示

SELECT文を使って、テーブル内のすべてのレコードを確認してみましょう。

mysql> select *from retrieveTimeDemo;

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

+--------+---------------------+
| UserId | UserArrivalTime |
+--------+---------------------+
| 1 | 2013-01-21 13:45:34 |
| 2 | 2014-11-25 11:40:56 |
| 3 | 2016-10-27 17:30:40 |
| 4 | 2017-02-21 18:03:06 |
| 5 | 2018-04-24 22:30:32 |
+--------+---------------------+
5 rows in set (0.00 sec)

4. HH:MM形式で時刻を取得するクエリ

ここが本題です。DATE_FORMAT()関数の第2引数に書式指定子「%H:%i」を指定することで、時と分だけを取り出せます。「%H」は24時間表記の時(00〜23)、「%i」は分(00〜59)を意味します。

mysql> select date_format(UserArrivalTime,'%H:%i') from retrieveTimeDemo;

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

+--------------------------------------+
| date_format(UserArrivalTime,'%H:%i') |
+--------------------------------------+
| 13:45 |
| 11:40 |
| 17:30 |
| 18:03 |
| 22:30 |
+--------------------------------------+
5 rows in set (0.00 sec)

このように、datetime型の値から時刻部分だけを「HH:MM」形式で簡単に抽出できます。

補足:12時間表記で取得したい場合

午前・午後を区別する12時間表記で取得したい場合は、「%H」の代わりに「%h」を使用します。また、「%r」を指定すれば「午後10時30分」のようにAM/PM付きの完全な時刻文字列も取得可能です。用途に応じて書式指定子を使い分けるとよいでしょう。

  1. PHP変数「11:00 AM」をMySQLの時間形式に変換する方法

    PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2

  2. MySQLで時間をHH:MM:SSからHH:MM形式に変換する方法

    MySQLのTIME_FORMAT()関数で時間形式を変換するMySQLでTIME型の時間を「HH:MM:SS」から「HH:MM」形式に変換するには、TIME_FORMAT()関数を使用します。この関数を使うと、秒を取り除いた見やすい時間表示を簡単に実現できます。ここでは、実際の手順をサンプルコードとともに解説します。1. サンプルテーブルの作成まず、TIME型のカラムを持つテーブルを作成します。mysql> create table DemoTable1419-> (-> ArrivalTime time-> );Query OK, 0 rows affected (