2017-03-03 65 views
0

我試圖讓那些30分鐘老今天有一個叫smsed值字段中的所有記錄= 0Laravel 5搜索記錄30分鐘及以上的爲今天

什麼,我試圖做的是讓所有的記錄在我的數據庫與今天的日期,並超過30分鐘。

$data = DB::table('applicant')->whereRaw('AppDate < (NOW() - INTERVAL 30 MINUTE)')->where('smsed','=',0)->limit(5000)->get(); 

以上所做的是獲取數據庫中的所有記錄,而不僅僅是今天。

+0

'AppDate'的列類型是什麼? –

+0

@RossWilson,它的日期時間 – ALCHI

回答

0

這是因爲你只要求它提供超過30分鐘的記錄,而不包括任何限制到今天的記錄。

您可以使用類似whereBetween

$data = DB::table('applicant') 
    ->whereBetween('AppDate', [Carbon\Carbon::now()->startOfDay(), Carbon\Carbon::now()->subMinute(30)]) 
    ->where('smsed', '=', 0) 
    ->limit(5000) 
    ->get(); 

或者,如果你只是想保持你的SQL函數,你可以這樣做:

$data = DB::table('applicant') 
    ->whereRaw('AppDate < (NOW() - INTERVAL 30 MINUTE)') 
    ->whereRaw('DATE(AppDate) = CURDATE()') 
    ->where('smsed','=',0) 
    ->limit(5000) 
    ->get(); 

希望這有助於!

+0

謝謝隊友,我不得不改變它的升技,但我得到的圖片 – ALCHI