我在mysql的表中有一个日期字段。我希望以这样的方式获取记录,即从今天到上一年以下列方式记录。
ID - >天 - >计数器
这意味着我希望每天都有明智的反击。在过去的一年中,每天插入了多少条记录(星期日,星期一等)。
plz帮助 谢谢
答案 0 :(得分:0)
SELECT DAY(dateField) AS dateDay, COUNT(*) AS numberOfDays
FROM dateTable
WHERE dateField BETWEEN TIMESTAMPADD(YEAR, -1, NOW()) AND NOW()
GROUP BY dateDay
http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_day
DAY功能可以替换为DATE以获取完整日期,TO_DAYS可以替换为0年,WEEKDAY获取星期一至星期日等等。
编辑:要通过WEEKDAY显示,请使用DAYNAME函数(DAYNAME(dateField))
http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_dayname
答案 1 :(得分:0)
使用where子句中的上一个year
,并计算每个dayname
中按year
分组的事件。您可以在weekday
个数字上订购结果。
例子:
select year( date ) as year
, dayname( date ) as day
, count( date ) as counter
from table_name
where
date between ( curdate() - interval 1 year ) and curdate()
-- or the following, to match all from prev year
-- year( date ) >= year( curdate() - interval 1 year )
group by 1, 2 -- year and dayname
order by year
, field( weekday( date ), 6, 0, 1, 2 ,3 ,4, 5 ) -- sun to sat