选择 `date_field < NOW()` 的条目

Selecting entries whose `date_field < NOW()`

当我尝试 运行 以下查询时,它 returns 什么都没有:

Item::where(\DB::raw('date_field < NOW()'))->get()

原因是,is null 附加到生成的 MySQL 查询中,如下所示:

SELECT * FROM items WHERE date_field < NOW() is null;

为什么 is null 部分会附加到上述查询中?

不知道为什么要附加 not null 部分。但我找到了解决方法。 试试这个

Item::whereNotNull(\DB::raw('date_field < NOW()'))->get()

当然,您可以使用 Carbon

等内置功能
Item::where('date_field', '<', Carbon\Carbon::now())->get()

这样用..

Item::where('date_field','<','NOW()')->get()

这是 Laravel 中的一个已知问题,已在他们的 GitHub page 中报告。使用 whereRaw() 代替并传递一个字符串:

Item::whereRaw('date_field < NOW()')->get()

SELECT * 来自项目 WHERE date_field < GETDATE();