Breaking Down Time Intervals into Components
mysql>
mysql> CREATE TABLE time_val
-> (
-> t1 TIME,
-> t2 TIME
-> );
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> INSERT INTO time_val (t1,t2) VALUES('15:00:00','15:00:00');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO time_val (t1,t2) VALUES('05:01:30','02:30:20');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO time_val (t1,t2) VALUES('12:30:20','17:30:45');
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> SELECT * FROM time_val;
+----------+----------+
| t1 | t2 |
+----------+----------+
| 15:00:00 | 15:00:00 |
| 05:01:30 | 02:30:20 |
| 12:30:20 | 17:30:45 |
+----------+----------+
3 rows in set (0.00 sec)
mysql>
mysql>
mysql> SELECT t1, t2,
-> SEC_TO_TIME(TIME_TO_SEC(t2) - TIME_TO_SEC(t1)) AS 'interval as TIME',
-> IF(SEC_TO_TIME(TIME_TO_SEC(t2) >= TIME_TO_SEC(t1)),'+','-') AS sign,
-> HOUR(SEC_TO_TIME(TIME_TO_SEC(t2) - TIME_TO_SEC(t1))) AS hour,
-> MINUTE(SEC_TO_TIME(TIME_TO_SEC(t2) - TIME_TO_SEC(t1))) AS minute,
-> SECOND(SEC_TO_TIME(TIME_TO_SEC(t2) - TIME_TO_SEC(t1))) AS second
-> FROM time_val;
+----------+----------+------------------+------+------+--------+--------+
| t1 | t2 | interval as TIME | sign | hour | minute | second |
+----------+----------+------------------+------+------+--------+--------+
| 15:00:00 | 15:00:00 | 00:00:00 | + | 0 | 0 | 0 |
| 05:01:30 | 02:30:20 | -02:31:10 | - | 2 | 31 | 10 |
| 12:30:20 | 17:30:45 | 05:00:25 | + | 5 | 0 | 25 |
+----------+----------+------------------+------+------+--------+--------+
3 rows in set (0.00 sec)
mysql>
mysql> drop table time_val;
Query OK, 0 rows affected (0.00 sec)
Related examples in the same category