【问题标题】:Mysql: calculate length time between two times in AM and PMMysql:计算AM和PM两次之间的长度时间
【发布时间】:2021-11-19 23:41:55
【问题描述】:

我需要计算time 类型的两列之间的差异。这些字段被命名为start_timeend_time。我使用函数timediff(s,e),它运行良好,但有时却不行。例如,当end_time00:00 被认为是12 AMstart_time19:00 这是7 PM 时,差异函数显示19 小时(实际上我也选择hour(timediff(s,e)))而我希望它5小时。

我该如何解决这个问题?


我试过了

case 
    when finish_time < start_time then TIMEDIFF(timestamp('2021:01:02',finish_time),timestamp('2021:01:01',start_time))
    else TIMEDIFF(timestamp('2021:01:01',finish_time),timestamp('2021:01:01',start_time))
end as diff,

它可以工作

【问题讨论】:

    标签: mysql time


    【解决方案1】:

    由于00:00:00 被认为是新一天的开始,或者即使您的结束时间是开始时间之后的第二天,您也必须将开始和结束字段设置为 DATETIME 类型。另外,如果您想要两次之间的差异,您应该使用timediff(end,start)

    【讨论】:

    • 我更新了问题。这是一个好的解决方案吗?
    • 日期为'2021-01-02'yyyy-mm-dd
    • 如果您对其进行了测试并且可以正常工作,那么它就很好
    • 谢谢。是的,没关系。我只是在寻找最佳实践
    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2018-04-09
    • 2012-02-18
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2016-04-23
    相关资源
    最近更新 更多