当我尝试运行以下查询时,它什么都不返回:
Item::where(\DB::raw('date_field < NOW()'))->get()
原因是,is null
被附加到生成的MySQL查询中,如下所示:
SELECT * FROM items WHERE date_field < NOW() is null;
为什么is null
部分会附加到上述查询?
答案 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();