如果 Python3 MySQL 中的一个单元格为 NULL,则 TIMESTAMPDIFF 不起作用

TIMESTAMPDIFF not working if one of the cells is NULL in Python3 MySQL

我有一个 table,其中包含以下四个 DATETIME 列和最后第五列 INTEGER:time_in1、time_out1、time_in2、time_out2、 total_seconds.

"total_seconds" 列的函数是

((TIMESTAMPDIFF(SECOND,time_in1,time_out1))+(TIMESTAMPDIFF(SECOND,time_in2, time_out2)))

即使只有 "time_in1" 和 "time_out1" 填充了正确的数据而其他两列为 NULL,有没有办法让 "total_seconds" 显示总数?

我知道我可以创建更多列来分别计算每个间隔的总秒数,然后在总计列中对所有秒数求和。但是让它像上面那样工作会很好。

DATETIME 列导致 TIMESTAMPDIFF() 函数 return NULL。所以你需要用 COALESCE(value, default).

条件化这些值
  COALESCE(TIMESTAMPDIFF(SECOND,time_in1,time_out1),0) 
+ COALESCE(TIMESTAMPDIFF(SECOND,time_in2, time_out2),0)

如果您想在 DATETIME 值之一或两者都为 null 的情况下使用零秒,则此方法有效。