Laravel/Eloquent 5中的whereBetween未按预期工作

5

我正在使用Laravel 5,并且希望在我的数据库(SQLite)中获取两个日期之间的行。

我正在使用以下命令:

$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
似乎相关:https://dev59.com/C2Af5IYBdhLWcg3wSRAz 我认为你的日期需要是日期对象。 - endofsource
你的 detect_at 列使用了哪种数据库列类型?此外,你能复制生成的 SQL 代码吗? - lowerends
2个回答

6

将日期包装在 Carbon 对象中:

// At top of file
use Carbon\Carbon;

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

3
我不知道这个回答对你有什么帮助,但它并没有起作用。 - Deviser

0
$query->whereDate("created_at",'>=',$from)->whereDate("created_at",'<=',$today);

1
如果您描述一下如何/为什么解决了问题,这个答案会更有用。 - Cleptus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接