2015-08-06 2 views
1

Я использую Laravel 5, и мне хотелось бы получить строки между двумя датами в моей базе данных (SQLite).Laravel/Eloquent 5 whereBetween не работает как ожидалось

Я использую эту команду:

$trackers = Tracker::whereBetween('detect_at', [$date1, $date2])->where("serial", "uhu")->get(); 

Но я не получаю никакого ответа.

Весь запрос:

$date1 = "2015-07-13 03:53:38"; 
$date2 = "2015-07-13 03:58:36"; 
$trackers = Tracker::whereBetween('detect_at', [$date1, $date2])->where("serial", "uhu")->get(); 

Вот пример одной строки в моей базе данных:

id serial latitude longitude altitude accuracy detect_at      created_at    updated_at 
728 uhu 48.0491  -1.74138 0   20   2015-07-13 03:54:38   2015-07-02 13:40:15   2015-07-02 13:40:15 
+1

кажется уместным: HTTP: //stackoverflow.com/questions/24824624/laravel-q-where-between-dates Я думаю, что ваши даты должны быть датированными объектами – endofsource

+0

W hat - это тип столбца базы данных для столбца 'detect_at'? Кроме того, вы можете вставить SQL, который сгенерирован? – lowerends

ответ

2

Wrap дата в объектах Carbon:

// At top of file 
use Carbon\Carbon; 

$trackers = Tracker 
    ::whereBetween('detect_at', [new Carbon($date1), new Carbon($date2)]) 
    ->where("serial", "uhu") 
    ->get(); 
Смежные вопросы