【发布时间】:2013-11-29 06:34:27
【问题描述】:
这里真的需要一些帮助。
有一个包含以下列的表格
开始日期、停止日期、开始时间、停止时间、总时间它们的格式为YYYY-MM-DD 和HH-MM
我如何获得HH-MM 格式的totaltime(有时开始和停止经过午夜)
谢谢
【问题讨论】:
这里真的需要一些帮助。
有一个包含以下列的表格
开始日期、停止日期、开始时间、停止时间、总时间它们的格式为YYYY-MM-DD 和HH-MM
我如何获得HH-MM 格式的totaltime(有时开始和停止经过午夜)
谢谢
【问题讨论】:
使用 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> 创建表 Table2 -> (`startdate` 日期, -> `stopdate` 日期, -> `starttime` 时间, -> `stoptime` 时间, -> `totaltime` 时间); 查询正常,0 行受影响(0.02 秒) mysql> 插入表 2 值 -> ('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); 查询正常,3 行受影响(0.01 秒) 记录:3 重复:0 警告:0 mysql>更新表2 -> 设置总时间 = TIMEDIFF(添加时间(停止日期,停止时间), -> 添加时间(开始日期,开始时间)); 查询正常,3 行受影响(0.01 秒) 匹配行:3 更改:3 警告:0 mysql> SELECT * FROM table2; +------------+------------+------------+----------+ ------------+ |开始日期 |停止日期 |开始时间 |停止时间 |总时间 | +------------+------------+------------+----------+ ------------+ | 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 行一组(0.00 秒)【讨论】:
timediff( later_date_time, former_date_time ) 得到肯定的结果。