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

MySQLでTIME値を「日数と時間」の形式に変換する方法

この記事では、MySQLのTIME型の値(例:150:50:10)を「6日と6時間」のような日数・時間形式に変換する方法を解説します。

このような変換を行うには、CONCAT() 関数と HOUR() 関数を組み合わせて使用します。まずはテーブルを作成しましょう。

mysql> create table DemoTable657(DueTime time);
Query OK, 0 rows affected (3.68 sec)

次に、INSERT文を使ってテーブルにレコードを挿入します。ここでは、合計時間の形式でデータを登録しています。

mysql> insert into DemoTable657 values('120:30:00');
Query OK, 1 row affected (0.38 sec)
mysql> insert into DemoTable657 values('150:50:10');
Query OK, 1 row affected (0.27 sec)

SELECT文で、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable657;

すると、次のような結果が出力されます。

+-----------+
| DueTime   |
+-----------+
| 120:30:00 |
| 150:50:10 |
+-----------+
2 rows in set (0.00 sec)

TIME値を「日数・時間」形式に変換するクエリ

それでは、TIME値を「◯日◯時間」の形式に変換するクエリを見ていきましょう。ポイントは、HOUR() で取得した時間を24で割った商をFLOOR()で切り捨てて「日数」とし、24で割った余り(MOD演算)を「時間」として扱う点です。

mysql> SELECT CONCAT( FLOOR(HOUR(DueTime)/24),' 日, ', HOUR(DueTime) MOD 24, ' 時間.') from DemoTable657;

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

+-----------------------------------------------------------------------------+
| CONCAT( FLOOR(HOUR(DueTime)/24),' DAYS, ', HOUR(DueTime) MOD 24, ' HOURS.') |
+-----------------------------------------------------------------------------+
| 5 DAYS, 0 HOURS.                                                            |
| 6 DAYS, 6 HOURS.                                                            |
+-----------------------------------------------------------------------------+
2 rows in set (0.00 sec)

このように、CONCAT() で文字列を連結し、FLOOR(HOUR(列名)/24) で日数を、HOUR(列名) MOD 24 で残りの時間を求めることで、24時間を超えるTIME値でも簡単に「日数と時間」の形式へ変換できます。タスク管理システムや締め切り時間の表示など、実務でも活用できるテクニックなので、ぜひ参考にしてください。

  1. MySQLでvarchar型の時刻データを正しい時間形式に変換する方法

    varchar型として保存された「1620」や「2345」のような時刻データを、実際の時間形式(例:04:20)に変換したい場合、MySQLのTIME_FORMAT()関数を使用することで実現できます。この記事では、SUBSTRING()とCONCAT()を組み合わせて、4桁の文字列を「時:分」の形式に整形する手順を解説します。1. サンプルテーブルの作成まず、到着時刻をvarchar型で格納するテーブルを作成します。mysql> create table DemoTable1591 -> ( -> ArrivalTime varchar(20) -&

  2. C言語・C++でchar型をint型に変換する方法まとめ(sscanf・atoi・stoi・型キャスト)

    C言語やC++のプログラミングでは、char型のデータをint型(整数)に変換したい場面がよくあります。例えば、文字列として受け取った数字を計算に使いたい場合や、文字の文字コード(ASCIIコード)を取得したい場合などです。本記事では、C言語とC++それぞれの言語でchar型をint型に変換する方法を、サンプルコードと実行結果とともにわかりやすく解説します。C言語でchar型をint型に変換する3つの方法C言語では、主に次の3つの方法で変換を行います。sscanf():書式指定子「%d」を使って、数字の文字列から整数値を読み取るatoi():数字の文字列をint型の整数に一発で変換する型キャス