mysql> select * from testbl3; +-----+---------------------+---------------------+ | sid | date1 | date2 | +-----+---------------------+---------------------+ | 1 | 2014-06-24 12:28:08 | 2014-06-24 12:28:18 | | 2 | 2014-06-24 12:28:37 | 2014-06-24 12:29:42 | +-----+---------------------+---------------------+ 2 rows in set (0.00 sec) 위와 같은 datetime 타입의 컬럼이 포함된 테이블이 있다. 이상태에서 date1과 date2간의 뺄셈을 해보겠다. mysql> select date1, date2, date2-date1, sec_to_time(date2-date1) from testbl3; +---------------------+---------------------+-------------+--------------------------+ | date1 | date2 | date2-date1 | sec_to_time(date2-date1) | +---------------------+---------------------+-------------+--------------------------+ | 2014-06-24 12:28:08 | 2014-06-24 12:28:18 | 10.000000 | 00:00:10 | | 2014-06-24 12:28:37 | 2014-06-24 12:29:42 | 105.000000 | 00:01:45 | +---------------------+---------------------+-------------+--------------------------+ 2 rows in set (0.01 sec) 첫번째는 제대로 10초라는 값이 제대로 나왔는데, 두번째는 1분45초로 원래 나와야 할 1분 5초와는 너무 차이나는 값이 나온걸 알 수 있다. datetime타입이라고 해도 뺄셈을 하게 되면 숫자로 취급하여 201406242942-201406242837=105가 나온것이다. 그래서 이럴때 제대로 된 값을 나오게 하기 위해서는 mysql> select date1, date2, unix_timestamp(date2)-unix_timestamp(date1) sec, sec_to_time(unix_timestamp(date2)-unix_timestamp(date1)) time from testbl3; +---------------------+---------------------+-----+----------+ | date1 | date2 | sec | time | +---------------------+---------------------+-----+----------+ | 2014-06-24 12:28:08 | 2014-06-24 12:28:18 | 10 | 00:00:10 | | 2014-06-24 12:28:37 | 2014-06-24 12:29:42 | 65 | 00:01:05 | +---------------------+---------------------+-----+----------+ 2 rows in set (0.00 sec) 위와 같이 하면 제대로 된 값이 나오는걸 알 수 있다.