mysql Server版本:5.0.95 datediff timediff不能正常工作

时间:2016-07-01 04:35:25

标签: mysql date datetime

最新版本的mysql server 5.7和我使用5.0。 在案件mysql服务器版本:5.0.95 datediff timediff不工作任何帮助建议是受欢迎的。 方法可能是一个小错误。

mysql> describe agent_idel_time;
+-----------------+------------------+------+-----+---------------------+-------+
| Field           | Type             | Null | Key | Default             | Extra |
+-----------------+------------------+------+-----+---------------------+-------+
| id              | int(10) unsigned | NO   | PRI | 0                   |       |
| holdtime        | datetime         | YES  |     | NULL                |       |
| hold_max        | int(11)          | NO   |     | NULL                |       |
| hold_min        | int(11)          | NO   |     | NULL                |       |
| hold_avg        | int(11)          | NO   |     | NULL                |       |
| hold_start_time | datetime         | NO   |     | 0000-00-00 00:00:00 |       |
| hold_end_time   | datetime         | NO   |     | 0000-00-00 00:00:00 |       |
| htime           | varchar(255)     | NO   |     | NULL                |       |
+-----------------+------------------+------+-----+---------------------+-------+
8 rows in set (0.00 sec)

mysql>
mysql>
mysql> select * from agent_idel_time \G;
*************************** 1. row ***************************
             id: 1
       holdtime: 0000-00-00 00:00:00
       hold_max: 55
       hold_min: 5
       hold_avg: 30
hold_start_time: 2016-06-30 15:10:00
  hold_end_time: 2016-06-30 15:12:00
          htime: 00:00:00
*************************** 2. row ***************************
             id: 2
       holdtime: 0000-00-00 00:00:00
       hold_max: 57
       hold_min: 7
       hold_avg: 32
hold_start_time: 2016-06-30 17:10:00
  hold_end_time: 2016-06-30 17:12:00
          htime: 00:00:00
2 rows in set (0.00 sec)

ERROR:
No query specified

mysql>
mysql>
mysql> UPDATE agent_idel_time SET htime = time_format(TIMEDIFF( `hold_end_time` , `hold_start_time` ) ,'%H:%m:%s');
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2  Changed: 0  Warnings: 0

mysql>
mysql> select * from agent_idel_time \G; 
*************************** 1. row ***************************
             id: 1
       holdtime: 0000-00-00 00:00:00
       hold_max: 55
       hold_min: 5
       hold_avg: 30
hold_start_time: 2016-06-30 15:10:00
  hold_end_time: 2016-06-30 15:12:00
          htime: 00:00:00
*************************** 2. row ***************************
             id: 2
       holdtime: 0000-00-00 00:00:00
       hold_max: 57
       hold_min: 7
       hold_avg: 32
hold_start_time: 2016-06-30 17:10:00
  hold_end_time: 2016-06-30 17:12:00
          htime: 00:00:00
2 rows in set (0.00 sec)

ERROR:
No query specified

1 个答案:

答案 0 :(得分:0)

你有time_format函数的格式字符串错误。

分钟,数字(00..59) %i ,而不是 %m (这是< em>月,数字(00..12))所以将更新语句更改为:

UPDATE agent_idel_time 
SET htime = time_format(TIMEDIFF(`hold_end_time`, `hold_start_time`) ,'%H:%i:%s');

或者您可以使用 '%T' time,24小时(hh:mm:ss)

Reference表示格式代码。