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の表示)を組み合わせることも可能です。表示形式を柔軟に変えられるので、画面出力やレポート作成などの場面で非常に便利な関数です。
-
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
-
MySQLでLIMITとOFFSETを使って1バッチずつ行を取得する方法
LIMITとOFFSETによるバッチ取得の基本MySQLで大量のデータを少しずつ処理したい場合、LIMIT句とOFFSET句を組み合わせるのが定番の手法です。LIMITは取得する行数を指定し、OFFSETは先頭から読み飛ばす行数を指定します。この2つを活用することで、テーブルの行を1バッチずつ順番に取り出せます。まずは、動作確認用のサンプルテーブルを作成しましょう。mysql> create table DemoTable1514 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY