Mega Code Archive

 
Categories / MySQL / Date Time
 

Transform the time differences into seconds using TIME_TO_SEC, add them, and then convert them back

mysql> mysql> CREATE TABLE mytable (     ->     id INT AUTO_INCREMENT,     ->     begintime DATETIME,     ->     endtime DATETIME,     ->     PRIMARY KEY (id)     -> ); Query OK, 0 rows affected (0.01 sec) mysql> mysql> INSERT INTO mytable (begintime, endtime) VALUES     ->         ('2005-03-27 7:15', '2005-03-27 18:00'),     ->         ('2005-03-28 8:00', '2005-03-28 18:00'),     ->         ('2005-03-29 7:30', '2005-03-29 16:50'),     ->         ('2005-03-30 7:00', '2005-03-30 17:15'); Query OK, 4 rows affected (0.00 sec) Records: 4  Duplicates: 0  Warnings: 0 mysql> SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(endtime, begintime)))) AS sumtime FROM mytable; +----------+ | sumtime  | +----------+ | 40:20:00 | +----------+ 1 row in set (0.00 sec) mysql> mysql> drop table mytable; Query OK, 0 rows affected (0.00 sec) mysql>