我在我的笨应用中的以下功能上定的日子,选择max之间00:01和23:59 - SQL
function set_day_peak($days, $offset, $network_id){
$days = $days + $offset;
$query = $this->db->query("SELECT MAX(total_online)AS total FROM network_traffic
WHERE network_id = '$network_id' AND timestamp >= NOW() - INTERVAL $days DAY
AND timestamp <= NOW() - INTERVAL $offset DAY");
$data = $query->row();
return $data->total;
}
上述功能确实返回一个值,但其并不准确,我需要的时候我叫
$this->set_day_peak(1,7,14)
是,它与7天的偏移或(8天前)从00:01最大(total_online)返回到23:59第1天。
因为我不是很聪明与SQL尚未唯一的解决方案,我可以管理将使用PHP来设置时间戳,即($day_start and $day_end)
然后使用SELECT MAX BETWEEN
但我想看看它是否可以用纯SQL完成任何想法将是非常感激。
为什么不在当天的第一个和最后一个分钟内发生事件? –
什么是'第一天7天抵消'?你的意思是第0天=星期天,第1天=星期一,......;所以你需要7天或更多天前的星期一的数据? –
第一个和最后一个分钟确实重要,我的错误。第一天用7天的偏移量表示8天前,第六天用7天的偏移量表示13天前 –