我必须从日期列大于今天的数据库中提取结果(基本上我需要查看即将发生的事件)。
在现实世界中,我在MySql控制台中玩游戏:
select * from searcheable where MATCH (title,description) AGAINST ('rock' IN BOOLEAN MODE) and date > CURDATE() order by date asc
效果很好。
我正在尝试使用Laravel以雄辩的方式提取相同的数据,我写道:
$results = Search::search($key)
->whereDate("date",">",' CURDATE()')
->orderBy("date",'asc')
->paginate();
但是它返回错误的结果和错误的日期。
请注意,我使用的 search 方法是全文。我不认为这是问题所在。
如果我进行调试,并使用dd($ results)打印sql,则会返回:
select * from `searcheable` where MATCH (title,description) AGAINST (? IN BOOLEAN MODE) and date(`date`) > ? order by `date` asc
这与我正在处理的开始查询非常相似。
雄辩的查询有什么问题?
感谢您的时间:)
答案 0 :(得分:3)
尝试这样
->whereDate("date",">", now());
now()
将返回Carbon DateTime实例,该实例将自动转换为适当的格式
答案 1 :(得分:1)
看起来您的错误可能是user_rosters
格式,因此您需要确保两个日期都采用相同的格式,对于当前日期,我始终使用CURDATE()
然后使用该日期进行搜索...