检索特定月份的数据
Posted
技术标签:
【中文标题】检索特定月份的数据【英文标题】:Retrieve data for specific months 【发布时间】:2014-01-19 13:49:22 【问题描述】:mysql 查询是这样的
SELECT MONTHNAME(access_date) as date,
DATE_FORMAT( access_date, '%m/%Y' ) as month_date ,
COUNT( log_id ) as total_count
FROM user_activity_log
WHERE dam_id = (
SELECT dam_id
FROM dam_content_details
WHERE content_type= '$content_type'
)
AND access_date >= last_day(NOW() - INTERVAL ($month) MONTH)
GROUP BY MONTH( access_date )
ORDER BY access_date ASC
我将传递 1,2,3.... 之类的数字,然后传递该月的给定值。
我面临的问题是它每 30 天、60 天检索一次数据。我想写 $month = '1;那么它应该从第 1 天开始返回当前月份数据和上个月数据。
我的示例输出 - $month = 2
date month_date total_count
--------- ------------ -----------
December 12/2013 4
January 01/2014 1
我想从 2013 年 12 月 1 日开始计算 12 月。 2013 年 12 月 1 日。知道如何解决吗?
【问题讨论】:
01/2013
是什么意思?请解释..
抱歉刚刚编辑了问题。请参考
@Clockwork-Muse 不,伙计,我无权分享抱歉。
@RIADev - 您不必为此使用实际数据 - 对于这些问题中的大多数,匿名/最小数据就可以了。哎呀,从我们可以看到此查询中引用的列中,它们中的数据本身就毫无意义。
【参考方案1】:
您只需从>=
中删除=
。
试试这个:
SELECT MONTHNAME(access_date) as date,
DATE_FORMAT( access_date, '%m/%Y' ) as month_date ,
COUNT( log_id ) as total_count
FROM user_activity_log
WHERE dam_id = (SELECT dam_id FROM dam_content_details WHERE content_type= '$content_type') AND
access_date > LAST_DAY(NOW() - INTERVAL (($month)+1) MONTH)
GROUP BY MONTH( access_date )
ORDER BY access_date ASC
【讨论】:
@RIADev 你遇到了什么问题?? 查看我是否会通过 1,然后在 30 天的间隔内选择当前日期到上个月。但我想要的是从 1 到当前日期的当前月份,以及上个月的整个 30/31 天。 没有相同的结果...可能是查询需要更改?以上是关于检索特定月份的数据的主要内容,如果未能解决你的问题,请参考以下文章