我有任務表以及日期欄'提醒日期'和'截止日期'。我需要在今天提到的那些日子之間完成所有任務。我對查詢知之甚少,所以ORM會更好。Laravel ORM獲取日期間的記錄?
我試過,
$today = date("Y-m-d");
$availTasks = Task::whereRaw($today.' between rem_date and due_date')->get();
echo ($availTasks);
我有任務表以及日期欄'提醒日期'和'截止日期'。我需要在今天提到的那些日子之間完成所有任務。我對查詢知之甚少,所以ORM會更好。Laravel ORM獲取日期間的記錄?
我試過,
$today = date("Y-m-d");
$availTasks = Task::whereRaw($today.' between rem_date and due_date')->get();
echo ($availTasks);
首先,使您的使用日期字符串正確的應該是:
$availTasks = Task::whereRaw('? between rem_date and due_date', [$today])->get();
如果您rem_date
和due_date
列DATE
類型它應該工作。但是,如果他們是DATETIME
類型,它將無法正常工作。您應該使用:
$availTasks = Task::whereRaw('? between DATE(rem_date) and DATE(due_date)', [$today])->get();
如何使用地方封閉的化合物:
$dateToday = date('Y-m-d H:i:s');
$query = Task::where(function ($query) use ($dateToday){
$query->where('rem_date', '>=', $dateToday);
$query->where('due_date', '<', $dateToday);
});
echo $query->get();
而且使用whereRaw你應該總是綁定您的參數,因爲它可以成爲注入載體時。我知道這個參數只是你的情況中的日期,但這只是一個好習慣。見先生。 Nabiałek回答這個問題。
第一個人工作。 –