我有一个 MySQL 表,如下所示。它基本上是任务的时间表。
id | task | user | start | stop | running
------+--------+--------+-----------------------+-----------------------+-----------
1 | 12 | 2 | 2009-10-01 10:05:00 | 2009-10-01 14:23:00 | 0
1 | 13 | 4 | 2009-10-05 08:58:00 | 2009-10-05 12:16:00 | 0
1 | 14 | 3 | 2009-10-05 20:30:00 | 2009-10-05 22:00:00 | 0
我想总结一下花费的时间:
1) 今天 2) 昨天 3) 本周 4) 上周 5) 这个月 6) 上个月
我不需要对每个查询进行查询,只需要第一个就可以开始。我不太熟悉 MySQL 中的不同日期函数,而且我认为很难阅读和浏览它们的文档。
最佳答案
这不是 THAT difficult浏览 MySQL 文档。
你需要TIMEDIFF()和 TIME_TO_SEC
功能。
select SUM(TIME_TO_SEC(TIMEDIFF(stop, start))) from my_table
where start >= CURRENT_DATE() and stop <= CURRENT_DATE() + INTERVAL 1 DAY
会得到您今天花在任务上的总时间(以秒为单位)。看DATE_SUB()
如果您要在 MySQL 中为其他范围(例如上个月等)指定条件,而不是将它们作为参数提供给您的查询。
关于mysql - MySQL 中日期之间的总时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522312/