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

MySQLで秒を含まない形式の時間を抽出する方法

TIME_FORMAT関数を使って秒を除外した時間を抽出する

MySQLで時間データから秒を取り除き、「時:分」の形式だけを抽出したい場合は、TIME_FORMAT() 関数を使用します。まずはサンプル用のテーブルを作成しましょう。

mysql> create table DemoTable1326
    -> (
    -> Arrivaltime time
    -> );
Query OK, 0 rows affected (0.50 sec)

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable1326 values('12:10:45');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1326 values('20:00:00');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1326 values('22:45:55');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1326 values('04:10:24');
Query OK, 1 row affected (0.11 sec)

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

mysql> select * from DemoTable1326;

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

+-------------+
| Arrivaltime |
+-------------+
| 12:10:45    |
| 20:00:00    |
| 22:45:55    |
| 04:10:24    |
+-------------+
4 rows in set (0.00 sec)

それでは、秒を含まない形式で時間を抽出するクエリを見ていきましょう。

mysql> select time_format(Arrivaltime,'%H:%i') from DemoTable1326;

このクエリを実行すると、次のような出力が得られます。

+----------------------------------+
| time_format(Arrivaltime,'%H:%i') |
+----------------------------------+
| 12:10                            |
| 20:00                            |
| 22:45                            |
| 04:10                            |
+----------------------------------+
4 rows in set (0.00 sec)

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

TIME_FORMAT() 関数では、今回以下の2つの指定子を使用しています。

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

このように '%H:%i' を指定することで、秒を除外した「時:分」形式の文字列を簡単に取得できます。なお、12時間表記にしたい場合は %h を使い、必要に応じて %p(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でLIMITとOFFSETを使って1バッチずつ行を取得する方法

    LIMITとOFFSETによるバッチ取得の基本MySQLで大量のデータを少しずつ処理したい場合、LIMIT句とOFFSET句を組み合わせるのが定番の手法です。LIMITは取得する行数を指定し、OFFSETは先頭から読み飛ばす行数を指定します。この2つを活用することで、テーブルの行を1バッチずつ順番に取り出せます。まずは、動作確認用のサンプルテーブルを作成しましょう。mysql> create table DemoTable1514    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY