我有一个带有行时间戳和行值的mysql数据库。我想按7天来计算所有的值。
如何才能使PHP以db中的第一个日期开始并创建每周摘要?
我的时间格式是dd-mm-yy。
我的问题是:
$kcl = mysqli_query($db,"SELECT * FROM tick GROUP BY date ORDER BY id DESC");我想这可以用for循环和计数器来完成,我必须做一个查询来找出第一个记录的日期,收集7天,然后做下7天。所以我想在这个布局中显示结果:
WEEK 30.12.13-05.01.2014 | RESULT OF CALC
WEEK 06.01.2014-12.01.204 | RESULT OF CALC
etc.我希望有人能给我一个提示。
发布于 2014-01-03 07:20:36
尝试如下所示:
"SELECT *, AVG(value) AS value_avg FROM `tick` GROUP BY WEEK(date) ORDER BY id DESC"Date time函数:http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
分组依据:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
发布于 2014-01-03 07:18:26
如果这是一个正在进行的过程,那么您应该研究一下cron。这是一个自动化的过程,它将按照设定的计划执行脚本,您可以在需要的时候对其进行更改、添加等。如果你有主机,它应该在你的控制面板选项中。
http://en.wikipedia.org/wiki/Cron
我不确定这是否是您想要的,但这可能是在PHP中关于时间函数的正确方向上的一步。
<?php
function dates_range($date1, $date2) {
if ($date1<$date2) {
$dates_range[]=$date1;
$date1=strtotime($date1);
$date2=strtotime($date2);
while ($date1!=$date2){
$date1=mktime(0, 0, 0, date("m", $date1), date("d", $date1)+1, date("Y", $date1));
$dates_range[]=date('Y-m-d', $date1);
}
}
return $dates_range;
}
$date_1 = strftime('%Y-%m-%d', time());
$date_2 = 'Search 7 days on either side';
//then compare your MySQL data to the output or through a foreach or whichever
echo '<pre>';
print_r(dates_range($date_1, $date_2));
echo '</pre>';
?>发布于 2014-01-03 07:29:48
我有一些痛苦的想法,但可能行不通,但我会尝试:
$kcl = mysqli_query($db,"SELECT * FROM where created_dt BETWEEN curdate() - INTERVAL $var DAY AND SYSDATE() tick GROUP BY date ORDER BY id DESC");我会在某个地方有一个视图来编辑$var为7,14,21等。
天啊..。
https://stackoverflow.com/questions/20893694
复制相似问题