首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL忽略TIMEDIFF中的负时间值

MYSQL忽略TIMEDIFF中的负时间值
EN

Stack Overflow用户
提问于 2020-09-03 05:49:36
回答 2查看 29关注 0票数 0

我在一个时间系统上工作,需要手动输入来和去的时间。(不是我的系统)我正在为这个系统建立一个仪表板,将显示平均时间在现场和更多。因为它需要手动输入来去时间,所以可能会发生错误。如果有人在18:00签到但忘记了打卡,系统会自动将时钟时间留在0:00:00。

在计算我的平均值时,如果出现上述情况,则它会计算在站点上花费的平均时间,并加上-18:00小时。这显然打破了整个计算。有没有一种方法可以让查询忽略任何否定来避免这种情况?

代码语言:javascript
复制
SELECT id, TIMEDIFF(`booking_time_out`, `booking_time`) AS 'Time_Spent'
FROM `table_name` 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-03 05:55:17

负结果条件是0:00:00预订时间的结果,因此在where条件中附加排除该行,如下所示:

where booking_time_out != '0:00:00'

票数 1
EN

Stack Overflow用户

发布于 2020-09-03 05:59:08

您似乎想要一个case表达式:

代码语言:javascript
复制
select id,
    case when timediff(`booking_time_out`, `booking_time`) < 0
        then 0
        else timediff(`booking_time_out`, `booking_time`) 
    end as time_spent
from tablename

附注:不要用单引号将标识符括起来(就像在as 'Time_spent'中一样)。在标准SQL中,单引号代表文字字符串。另一方面,您通常不需要引用标识符(除非它的名称选择得很糟糕)-如果需要的话,MySQL的引号字符是反引号。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63713991

复制
相关文章

相似问题

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