我正在构建一个图表,并提取过去24小时,48小时,1周和2周的数据。
我为此目的使用了INTERVAL语句,但它们没有按预期工作。我正在使用Laravel。以下是提取数据的功能:
public function range($range)
{
$data = new Main();
$data0 = $data->whereRaw('updated_at >= DATE_SUB(NOW(), INTERVAL '.$range.')')->whereRaw('MINUTE(updated_at)>54')->orwhereRaw('MINUTE(updated_at)<6')->where('server_short_name', '=', 'FiveRP')->get();
$data1 = $data->whereRaw('updated_at >= DATE_SUB(NOW(), INTERVAL '.$range.')')->whereRaw('MINUTE(updated_at)>54')->orwhereRaw('MINUTE(updated_at)<6')->where('server_short_name', '=', 'GTALife')->get();
$data2 = $data->whereRaw('updated_at >= DATE_SUB(NOW(), INTERVAL '.$range.')')->whereRaw('MINUTE(updated_at)>54')->orwhereRaw('MINUTE(updated_at)<6')->where('server_short_name', '=', 'GermanV')->get();
return compact('data0', 'data1', 'data2');
}
以下是调用视图的函数:
public function hours24()
{
$t = $this::range('24 HOUR');
return view('chart', $t);
}
但是在图表中,我也是从5月22日开始获得结果,这是DB上最早的日期。这意味着代码没有按预期工作,尽管根据我的说法是正确的。有什么我错过了吗?
答案 0 :(得分:0)
我找到了解决方案。实际上在我的代码中我使用'orwhereRaw',这意味着我暗示所有where语句之间的OR,这可能不是我想要的。