【问题标题】:MySQL Query to group by date range?MySQL查询按日期范围分组?
【发布时间】:2013-08-14 05:37:33
【问题描述】:

我在 MySQL 中有一个表格,显示每天登录的小时数。我正在尝试构建一个视图,使我能够按块/天范围快速分组我的数据。最简单的情况是按月计算,这并不难。我可以选择日期为“%y-%m”,然后按该列分组。

例如:

select time_logged, date_format(start_date, '%Y-%m') AS `month_logged`
from work_log
group by month_logged

如果我只是按月分组,那效果很好。但我的问题是我需要从本月 13 日到下个月 12 日进行分组(例如:7 月 13 日至 8 月 12 日、8 月 13 日至 9 月 12 日等)。

有没有一种简单的方法可以在单个查询/视图中执行类似的操作?即使使用不同的日期字段组合,我似乎也无法提出适合我需要的查询。

【问题讨论】:

  • 您只需要与 13 日或 12 日相关的数据吗?或者您只想在这一天进行 GROUP BY?

标签: mysql sql group-by views


【解决方案1】:

减去 13 天,然后做你现在正在做的分组:

select time_logged,
       date_format(start_date - interval 12 day, '%Y-%m') AS `month_logged`
from work_log
group by month_logged;

【讨论】:

  • 我想是 12 天,但是 +1 :)
  • 咂舌。当然。那肯定是最简单的。我终于让它使用了一个复杂的 if 子句,但这更加直接和明显!谢谢!
猜你喜欢
  • 2010-10-31
  • 2019-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 2011-01-01
  • 2020-10-31
相关资源
最近更新 更多