Breaking Down Time Intervals into Components : TIME_TO_SEC « Date Time « SQL / MySQL






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

1.If you pass TIME_TO_SEC( ) a date-and-time value, it extracts the time part and discards the date.
2.TIME_TO_SEC( ) converts a TIME value to the equivalent number of seconds
3.TIME_TO_SEC(): strips off the date part and returns the time part as the corresponding number of seconds:
4.To compute the total elapsed time, use TIME_TO_SEC( ) to convert the values to seconds before summing them.
5.Using TIME_TO_SEC( ) to strip off the date part of the t_create values
6.Transform the time differences into seconds using TIME_TO_SEC, add them, and then convert them back
7.To express time values as minutes, hours, or days, perform the appropriate divisions:
8.Forcing MySQL to Treat Strings as Temporal Values