我的Laravel雄辩查询出了什么问题

时间:2018-10-17 14:18:13

标签: laravel laravel-5 eloquent

Laravel查询出了什么问题,它的结果比原始结果少一个。

Test::where('has_ftd', 1)
               ->where('ftd_date', '>=', '2018-10-17')
               ->where('ftd_date', '<=', '2018-10-17')
               ->paginate(10);

更新:我刚刚注意到小于等于'<='的结果小于'<'

2 个答案:

答案 0 :(得分:3)

查询datetimetimestamp值时,通常重要的是包括“时间”部分,以确保您查询的是正确的值:

Test::where('has_ftd', 1)
->where('ftd_date', '>=', '2018-10-17 00:00:00')
->where('ftd_date', '<=', '2018-10-17 23:59:59')
->paginate(10);

提供值2018-10-17 00:00:002018-10-17 23:59:59将确保查询处理一个完整的含日期的值。

答案 1 :(得分:0)

对于范围,可以使用Laravel whereBetween()方法。您可以尝试以下方法:-

Test::where('has_ftd', 1)
    ->whereBetween('ftd_date', [$date_from, $date_to])
    ->paginate(10);

我认为这会起作用。

参考:https://laravel.com/docs/5.7/queries#where-clauses