自最近6个月以来每周都有mysql请求

时间:2016-06-21 08:01:36

标签: mysql database sorting date

我正在尝试请求我的数据库获取按行数排序的过去6个月内特定登录的行数。

输出必须是这样的:

enter image description here

我的要求是这样的:

SELECT count(*)  FROM table1 where (`EndDate` BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 MONTH) and CURDATE()) AND the_login LIKE 'LOGIN 1';

它显示了过去6个月的每一行。 您能否完成我的请求或在需要时进行更改?

1 个答案:

答案 0 :(得分:2)

您可以使用YEAR()WEEK()从日期中提取它们,然后按它们分组。

请注意,我并非只使用WEEK,因为它还不够,如果您在6月之前执行此操作,则可能会误解数周。

此外,请勿使用LIKE进行完全匹配,仅将其用于部分比较。

SELECT YEAR(t.endDate) as m_Year, WEEK(t.endDate) as m_Week, count(*)
FROM table1 t
where t.`EndDate` BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 MONTH) 
                      and CURDATE())
  AND t.the_login = 'LOGIN 1'
GROUP BY m_Year,m_Week