MYSQL-无法计算字段之间的时间差并且无法使用 where 子句

标签 mysql

这是计算 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/

相关文章:

php - 字符集设置为 UTF-8,但 mysqli 报告不是 utf8

php - 在 PHP 中多次调用 MySQL 存储例程

c# - 通过 C# 插入 MySQL

javascript - 从连接到 SQL 的 PHP 使用 AngularJS 读取 JSON 数据

php - PDO - 添加多行的值以获得平均值

php - 构建 Laravel Web API 时更改表列名称

mysql - 不使用 PHP 将希腊字符插入 MySQL 表列

sql - 我需要帮助编写一个复杂的(对我而言)SELECT 语句

mysql - 如果MySQL表的引擎从MySAM更改为InnoDB,软件或站点会受到影响吗?

php - 如何编写具有多个数据顺序的 MySql 查询?