mysql - MySQL 中日期之间的总时间

标签 mysql datetime date

我有一个 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/

相关文章:

php、mysql,如何获取动态 sql html 表循环内的字段名称?

datetime - 使用formatDate的grails文本字段

java - 使用 postgres 的时区将日期转换为时间戳

java - 日期格式化后以小写形式显示 AM 和 PM

c# - 使用 DateTime 查看本周的预订

ios - 如何快速将波斯日期转换为公历

sql - 需要返回一个值,当某个日期范围内不存在该值时,该值的计数为 0

java - 连接错误和 java.long.nullpointer 错误

mysql - 如何通过 : log and anlyze clicks, 页面浏览量和 session 数来优化转化

mysql - 有没有办法在 SELECT 语句中格式化来自 MySQL 的数据?