我有一张桌子,我可以输入申请人的参赛作品。它有一个date_added列,其中type是timestamp,默认值是current_timestamp。我想制作每周和每月的报告,但我无法确定最好的做法。我需要一个sql语句,返回像这样的条目数。
switch($searchby){
case "monthly": $qry = "select * from tblapplicant where date_added > $month"; break;
case "weekly": $qry = "select * from tblapplicant where date_added > $week"; break;
}
$res = mysql_query($select);
$rec_count = mysql_num_rows($res);
echo "There are <font color='red' size='3'>".$rec_count."</font> matching records found.";
我知道这是不正确的,但这是我现在所能想到的。
我想要的另一件事是,我希望它是确切的年月报告..
编辑: 输出应该是: 2013年6月的整个月共有13位申请人。 - 或者每周一次 - 2013年7月第三季度有3名申请人。
答案 0 :(得分:1)
我建议采用以下方法。首先,使用您的PHP代码确定您的搜索周期开始的日期以及结束后的第二天。例如,如果是2013年9月的月度报告,则您的开始日期为2013-09-01,结束日期为2013-10-01。然后你只需要一个查询。
where date_added >= $startdate
and date_added < $enddate
这种方法的主要好处是:
答案 1 :(得分:0)
这可以是你的sql语句
select * from tblapplicant where month(date_added) > $month
select * from tblapplicant where DAYOFWEEK(date_added) = X
您应该将X替换为您的工作日1 =星期日,2 =星期一,...,7 =星期六