首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL-无法计算to字段之间的时间差,也无法使用where子句

问MYSQL-无法计算to字段之间的时间差,也无法使用where子句
EN

Stack Overflow用户
提问于 2016-01-27 17:08:41
回答 3查看 79关注 0票数 1

这是一个SQL查询,用于计算DateTimeSolved和DateTimeCreated之间的时间差,我需要以小时为单位来计算结果。

代码语言:javascript
复制
$query = "SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved TIMEDIFF(HOUR, problem.DateTimeSolved, problem.DateTimeCreated)
From problem";

我在查询中添加了where子句:

$query =“从问题中选择problem.status、problem.id、problem.DateTimeSolved、problem.DateTimeCreated、TIMESTAMPDIFF(DAY,problem.DateTimeSolved,problem.DateTimeCreated),其中problem.status = '5‘组按月(problem.DateTimeCreated)=月份(CURDATE())”;这是它工作的查询的当前格式,但输出为负值。

当我试图运行以下语句时,仍然会收到这个错误:

SQL语法出现错误; 检查与您的MySQL服务器版本对应的手册,以获得正确的语法。

EN

回答 3

Stack Overflow用户

发布于 2016-01-27 17:13:44

您忽略了一个逗号,而timediff函数只需要两个值,要格式化它(仅显示小时),请使用以下查询:

代码语言:javascript
复制
SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved, TIME_FORMAT(TIMEDIFF(problem.DateTimeSolved, problem.DateTimeCreated), '%k %i')
From problem
票数 0
EN

Stack Overflow用户

发布于 2016-01-27 17:21:47

错误消息是由于TIMEDIFF函数之前缺少一个逗号造成的:

代码语言:javascript
复制
SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved, TIMEDIFF(HOUR, problem.DateTimeSolved, problem.DateTimeCreated)

从问题

然后您会发现TIMEDIFF的参数是不正确的。这应该是可行的:

代码语言:javascript
复制
SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved, TIMEDIFF( problem.DateTimeSolved, problem.DateTimeCreated)
From problem

如果你只需要时间:

代码语言:javascript
复制
SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved, HOUR(TIMEDIFF( problem.DateTimeSolved, problem.DateTimeCreated)) From problem
票数 0
EN

Stack Overflow用户

发布于 2016-01-27 17:16:40

尝尝这个

代码语言:javascript
复制
$query = "SELECT problem.id, problem.DateTimeCreated, problem.DateTimeSolved TIMESTAMPDIFF(HOUR, problem.DateTimeSolved, problem.DateTimeCreated)
From problem";
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35043704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档