选择`date_field<的日期NOW()`

时间:2016-06-03 10:05:25

标签: sql laravel laravel-5 laravel-5.2 query-builder

当我尝试运行以下查询时,它什么都不返回:

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

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

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

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

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

当然,您可以使用内置功能,例如Carbon

Item::where('date_field', '<', Carbon\Carbon::now())->get()

答案 2 :(得分:0)

以这种方式使用..

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

答案 3 :(得分:0)

SELECT * FROM items WHERE date_field&lt; GETDATE();