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

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型に変換すれば問題なく処理できるため、ログ解析や勤怠データの集計など、さまざまな場面で活用できる便利なテクニックです。

  1. 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 (

  2. MySQLで文字列から日付を抽出する方法|SUBSTRING_INDEX関数の実践的な使い方

    MySQLで文字列から日付を抽出するには?MySQLで文字列の中から日付部分だけを取り出したい場合、SUBSTRING_INDEX() 関数を使うのが便利です。この関数は、指定した区切り文字を基準に文字列を分割し、必要な部分を取得できます。ここでは、実際にテーブルを作成し、文章の中に含まれる日付(例:12/31/2018)を抽出する手順を解説します。1. サンプルテーブルを作成するまず、文字列を格納するためのテーブルを作成します。mysql> create table DemoTable -> ( -> Title text -> );Query OK