这是计算 DateTimeSolved 和 DateTimeCreated 之间时差的 SQL 查询,我需要结果以小时为单位。
$query = "SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved TIMEDIFF(HOUR, problem.DateTimeSolved, problem.DateTimeCreated)
From problem";
我在查询中添加了一个 where 子句:
$query = "SELECT problem.status, problem.id, problem.DateTimeSolved, problem.DateTimeCreated, TIMESTAMPDIFF(DAY, problem.DateTimeSolved, problem.DateTimeCreated) 从问题 WHERE problem.status = '5' GROUP BY MONTH(problem.DateTimeCreated) = MONTH(CURDATE())"; 这是查询的当前格式,但我得到的输出是负数。
当我尝试运行语句时仍然出现此错误:
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
最佳答案
错误信息是由于在 TIMEDIFF 函数前缺少一个逗号:
SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved, TIMEDIFF(HOUR, problem.DateTimeSolved, problem.DateTimeCreated)
来自问题
然后你会发现你的TIMEDIFF参数不对。这应该有效:
SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved, TIMEDIFF( problem.DateTimeSolved, problem.DateTimeCreated)
From problem
如果您只需要时间:
SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved, HOUR(TIMEDIFF( problem.DateTimeSolved, problem.DateTimeCreated)) From problem
关于MYSQL-无法计算字段之间的时间差并且无法使用 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35043704/