我有一个自己解决不了的问题。最好的办法是,如果可以直接从MySQL进行计算,但如果不能,从PHP进行计算也很好。
我有一个表有3列:id、time、value
现在时间值是datetime(例如:2012-11-03 00:13:12)
我想创建过去7天的统计数据。假设我有7排,今天是2012-12-20。
以下是行:日期时间值2012年12月20日00:12:12 22012年12月20日04:06:15 42012年12月20日03:12:14 52012年12月18日03:12:14 72012年12月16日12:12:14 32012年12月16日14:23:34 22012年12月15日14:23:34 9
如果我想得到最近7天的报告,应该是:
2012-12-14 -> value =0
2012-12-15 -> value =9
2012-12-16 -> value =5
2012-12-17 -> value =0
2012-12-18 -> value =7
2012-12-19 -> value =0
2012-12-20 -> value =11
目前我有这个(提取最近7天的记录):
$date=date("Y-m-d");
$date=date ("Y-m-d", strtotime ( '-7 day' . $date ) );
$qry="select value,date from mytable where date>'$date'";
$res=mysql_query($qry) or die("Couldn't select Information :".mysql_error());
while($row=mysql_fetch_array($res))
{
echo $row["value"];
}
我希望有人能提供建议。事先谢谢!弗拉德
仅使用MySQL就可以相对容易地解决这个问题。这与这个问题非常相似:mysql查询组(按天/月/年)
您需要更改查询,以便它获取给定周的所有记录。
SELECT DAY(date) , SUM(value)
FROM mytable
WHERE WEEK(date) = WEEK(NOW())
GROUP BY DAY(date)
还可以很容易地更改对数字的分组方式,例如使用GROUP BY MONTH(date)按月进行分组。您还可以通过执行EDOCX1[1]使MySQL将日名称显示为字段,以了解有关可用功能的更多详细信息,请参阅MySQL用户指南中的日期和时间功能。
谢谢,正是我要找的!我使用日期格式(日期,'format'),因为我还想获得年/月,但它是完美的!