0
真的需要一些帮助。SQL中的时差。午夜总时间
有与下列的表
startdate, stopdate, starttime, stoptime, totaltime
他们在格式YYYY-MM-DD
和HH-MM
我如何获得totaltime
在HH-MM
格式(有时启动和停止通过午夜)
谢谢
真的需要一些帮助。SQL中的时差。午夜总时间
有与下列的表
startdate, stopdate, starttime, stoptime, totaltime
他们在格式YYYY-MM-DD
和HH-MM
我如何获得totaltime
在HH-MM
格式(有时启动和停止通过午夜)
谢谢
使用TIMEDIFF将返回00:00:00.00000 //这种格式
TIMEDIFF('2013-11-20 12:01:00', '2010-11-19 12:00:00')
,或者你可以隐蔽到秒
TIME_TO_SEC(TIMEDIFF('2013-11-20 12:01:00', '2010-11-19 12:00:00'))
尝试这种方式
UPDATE table1
SET totaltime = TIMEDIFF(ADDTIME(stopdate, stoptime),
ADDTIME(startdate, starttime));
这里是SQLFiddle演示
更新:这是一个午夜时间的例子。
mysql> CREATE TABLE Table2 -> (`startdate` date, -> `stopdate` date, -> `starttime` time, -> `stoptime` time, -> `totaltime` time); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO Table2 VALUES -> ('2013-11-27', '2013-11-28', '11:00', '00:00', NULL), -> ('2013-11-27', '2013-11-28', '00:00', '15:00', NULL), -> ('2013-11-27', '2013-11-28', '00:00', '00:00', NULL); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> UPDATE table2 -> SET totaltime = TIMEDIFF(ADDTIME(stopdate, stoptime), -> ADDTIME(startdate, starttime)); Query OK, 3 rows affected (0.01 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> SELECT * FROM table2; +------------+------------+-----------+----------+-----------+ | startdate | stopdate | starttime | stoptime | totaltime | +------------+------------+-----------+----------+-----------+ | 2013-11-27 | 2013-11-28 | 11:00:00 | 00:00:00 | 13:00:00 | | 2013-11-27 | 2013-11-28 | 00:00:00 | 15:00:00 | 39:00:00 | | 2013-11-27 | 2013-11-28 | 00:00:00 | 00:00:00 | 24:00:00 | +------------+------------+-----------+----------+-----------+ 3 rows in set (0.00 sec)
此更新为我工作不错,但在经过午夜的情况下,我得到负的总 – user3048250
@ user3048250使用'timeDiff测量(later_date_time,former_date_time)'取得积极的结果。 –
奇怪的事情发生时,通过00.00时,它将从开始时间减去停止时间并使其为负数。 – user3048250