我想返回数据库表中一天或更短的所有行。我正在使用 Laravel 4。这是我尝试过的:
$date = date('Y-m-d H:i:s');
return MainContact::where(DATEDIFF('timestamp', $date), '<=', 1)->get();
这不起作用。我阅读了文档,似乎您无法传递 Laravel MySQL 函数。
timestamp
是一个日期时间字段。如何在 Laravel 4 中比较这些日期?
最佳答案
user1977808 给你的答案并不好,因为 MySQL 不能在时间戳列上使用索引,因为它必须为每一行计算 DATE_SUB 函数的输出。避免这样的查询,他们每次都必须处理整个表!
这样的事情怎么样:
return MainContact::where('timestamp', '>=', time() - (24*60*60))->get();
我把
>=
在那里,因为你说“一天或更短”,所以他们的时间戳必须晚于昨天。
关于Laravel/Eloquent 和比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346431/