MySQLで時刻(TIME型)から「分」を抽出する方法
MySQLでは、extract()関数とcast()を組み合わせることで、時刻データから分だけを簡単に抽出できます。
基本構文
以下が基本となる構文です。
select extract(minute from cast(yourColumnName as time)) as anyAliasName from yourTableName;
ポイントは、対象のカラムをcast()でtime型に変換してから、extract()のminute指定で分を取り出す点です。
サンプルテーブルの作成
まずは動作を確認するためのテーブルを作成しましょう。
mysql> create table demo15 -> ( -> value time -> ); Query OK, 0 rows affected (2.11 sec)
レコードの挿入
続いて、insertコマンドでいくつかの時刻データを登録します。
mysql> insert into demo15 values('10:30:45');
Query OK, 1 row affected (0.09 sec)
mysql> insert into demo15 values('06:34:55');
Query OK, 1 row affected (0.17 sec)登録データの確認
select文でテーブルの中身を表示してみます。
mysql> select *from demo15;
実行結果は以下の通りです。
+----------+ | value | +----------+ | 10:30:45 | | 06:34:55 | +----------+ 2 rows in set (0.00 sec)
時刻から分を抽出するクエリ
それでは、実際に時刻から分を抽出してみましょう。使用するクエリは以下の通りです。
mysql> select extract(minute from cast(value as time)) as Minute from demo15;
実行結果:
+--------+ | Minute | +--------+ | 30 | | 34 | +--------+ 2 rows in set (0.00 sec)
このように、「10:30:45」からは30、「06:34:55」からは34というように、時刻データから分の部分だけを正しく取得できています。
応用ポイント
同じ考え方は、hour(時)やsecond(秒)などの抽出にもそのまま応用できます。文字列として保存された時刻データでも、cast()でtime型に変換すれば問題なく処理できるため、ログ解析や勤怠データの集計など、さまざまな場面で活用できる便利なテクニックです。
-
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で文字列から日付を抽出する方法|SUBSTRING_INDEX関数の実践的な使い方
MySQLで文字列から日付を抽出するには?MySQLで文字列の中から日付部分だけを取り出したい場合、SUBSTRING_INDEX() 関数を使うのが便利です。この関数は、指定した区切り文字を基準に文字列を分割し、必要な部分を取得できます。ここでは、実際にテーブルを作成し、文章の中に含まれる日付(例:12/31/2018)を抽出する手順を解説します。1. サンプルテーブルを作成するまず、文字列を格納するためのテーブルを作成します。mysql> create table DemoTable -> ( -> Title text -> );Query OK