MySQLのTIME_FORMAT関数を使って時刻フィールドから秒を削除する方法
MySQLの時刻(TIME)型フィールドから秒を取り除いて「時:分」の形式だけを表示したい場合、TIME_FORMAT() 関数を使用します。この関数にフォーマット指定子 %H:%i を渡すことで、秒を含まない時刻文字列を簡単に取得できます。
TIME_FORMAT()の基本構文
SELECT TIME_FORMAT(カラム名1, "%H:%i") AS 任意の別名1,
TIME_FORMAT(カラム名2, "%H:%i") AS 任意の別名2
FROM テーブル名;それでは、実際にテーブルを作成して動作を確認してみましょう。
サンプルテーブルの作成
まず、開始時刻と終了時刻を持つテーブルを作成します。
mysql> create table removeSecondsFromTime
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> StartTime time,
-> EndTime time,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.71 sec)テストデータの挿入
次に、INSERT文を使っていくつかのレコードを挿入します。
mysql> insert into removeSecondsFromTime(StartTime,EndTime) values('10:20:45','11:21:40');
Query OK, 1 row affected (0.43 sec)
mysql> insert into removeSecondsFromTime(StartTime,EndTime) values('12:30:55','13:20:21');
Query OK, 1 row affected (0.31 sec)
mysql> insert into removeSecondsFromTime(StartTime,EndTime) values('14:40:57','15:55:02');
Query OK, 1 row affected (0.24 sec)登録データの確認
SELECT文ですべてのレコードを表示してみます。
mysql> select *from removeSecondsFromTime;
実行結果は以下のとおりです。現時点では時刻に秒が含まれています。
+----+-----------+----------+ | Id | StartTime | EndTime | +----+-----------+----------+ | 1 | 10:20:45 | 11:21:40 | | 2 | 12:30:55 | 13:20:21 | | 3 | 14:40:57 | 15:55:02 | +----+-----------+----------+ 3 rows in set (0.00 sec)
秒を削除するクエリ
ここでTIME_FORMAT()関数を使用し、フォーマットを %H:%i(時:分)に指定することで、秒を除外した時刻を取得します。
mysql> select TIME_FORMAT(StartTime, "%H:%i") as StartingTime,
-> TIME_FORMAT(EndTime, "%H:%i") as EndingTime
-> from removeSecondsFromTime;実行結果は以下のとおりです。
+--------------+------------+ | StartingTime | EndingTime | +--------------+------------+ | 10:20 | 11:21 | | 12:30 | 13:20 | | 14:40 | 15:55 | +--------------+------------+ 3 rows in set (0.00 sec)
このように、TIME_FORMAT()関数と %H:%i フォーマットを組み合わせることで、元のデータを変更することなく、表示上だけ秒を取り除いた時刻を簡単に出力できます。なお、%H は24時間表記の「時」、%i は「分」を表すフォーマット指定子です。
-
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 (
-
MySQLでフィールド値に含まれるカンマの数をカウントする方法
MySQLでフィールド値に含まれるカンマの数をカウントする方法カンマ区切りで保存されたデータから、カンマがいくつ含まれているかを調べたいケースは意外と多くあります。MySQLではLENGTH()関数とREPLACE()関数を組み合わせることで、シンプルなクエリひとつでカンマの個数をカウントできます。基本構文以下がカンマをカウントするための基本構文です。select length(対象カラム名) - length(replace(対象カラム名, ,, )) as エイリアス名 from テーブル名;このクエリの仕組みは非常にシンプルです。元の文字列の長さから、カンマをすべて削除した文字列の長さを