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

MySQLで異なる列間の時間差を計算する方法

MySQLでは、TIMEDIFF()関数とTIME_FORMAT()関数を組み合わせることで、異なる列に格納された時刻の差を簡単に計算できます。ここでは、出勤時間・退勤時間・休憩時間の3つの列から実勤務時間を算出する例を紹介します。

テーブルの作成

まず、サンプル用のテーブルを作成します。

mysql> create table DemoTable
-> (
-> PunchIn time,
-> PunchOut time,
-> Launch time
-> );
Query OK, 0 rows affected (0.50 sec)

データの挿入

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable values('9:00','6:00','1:00:00');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('9:30','6:10','00:30:00');
Query OK, 1 row affected (0.21 sec)

レコードの確認

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

mysql> select *from DemoTable;

出力結果

+----------+----------+----------+
| PunchIn | PunchOut | Launch |
+----------+----------+----------+
| 09:00:00 | 06:00:00 | 01:00:00 |
| 09:30:00 | 06:10:00 | 00:30:00 |
+----------+----------+----------+
2 rows in set (0.00 sec)

時間差を計算するクエリ

以下のクエリでは、まずTIMEDIFF()PunchInPunchOutの差を求め、さらにその結果から休憩時間(Launch)を差し引いています。最後にTIME_FORMAT()を使って「時:分」形式に整形しています。

mysql> SELECT TIME_FORMAT(TIMEDIFF(TIMEDIFF(PunchIn,PunchOut), Launch), '%H:%i') as TimeDiff from DemoTable;

出力結果

+----------+
| TimeDiff |
+----------+
| 02:00 |
| 02:50 |
+----------+
2 rows in set (0.00 sec)

この結果について見てみると、1行目は「9:00 − 6:00 = 3時間」から休憩1時間を引いた「02:00」、2行目は「9:30 − 6:10 = 3時間20分」から休憩30分を引いた「02:50」となっています。このようにTIMEDIFF()を入れ子にすることで、複数の列にまたがる時間計算も柔軟に処理できます。

  1. 異なる列にある2つの日付間の日数を計算するMySQLクエリ

    MySQLでは、DATEDIFF()関数を使うことで、同じテーブル内の異なる列に格納された2つの日付の差(日数)を簡単に計算できます。ここでは、社員の入社日と退職日から勤務日数を求める例を紹介します。1. テーブルを作成するまず、2つの日付型の列を持つテーブルを作成します。mysql> create table DemoTable1471-> (-> EmployeeJoiningDate date,-> EmployeeRelievingDate date-> );Query OK, 0 rows affected (0.57 sec)2. レコードを挿入するI

  2. Excelで時間差を計算する方法|####エラーとAM/PM表示を解決するコツ

    Microsoft Excelは、予算管理や税額計算など、幅広い用途に活用できる強力な表計算ソフトです。豊富な機能を活かせば、電卓代わりとしても使えます。さらに、Excelでは2つの時刻の差(時間差)を計算することも可能です。たとえば、従業員の勤務開始時刻と終了時刻から実際の勤務時間を算出したり、勤務時間の記録を一元管理して給与や賃金の計算に役立てたりできます。 「時間差の計算なら、終了時刻から開始時刻を引くだけだから簡単」と思うかもしれません。しかし、単純に引き算を実行すると、2つの問題に直面します。この記事では、その問題点と具体的な解決方法をわかりやすく解説します。 Excelで時間差を