我想返回数据库表中一天或更少旧的所有行.我正在使用Laravel 4.这就是我尝试过的:
$date = date('Y-m-d H:i:s');
return MainContact::where(DATEDIFF('timestamp', $date), '<=', 1)->get();
Run Code Online (Sandbox Code Playgroud)
这不起作用.我阅读了文档,似乎你不能通过Laravel MySQL函数. timestamp是一个日期时间字段.如何在Laravel 4中比较这些日期?
dua*_*ty_ 10
user1977808给你的答案并不好,因为MySQL不能在timestamp列上使用索引,因为它必须为每一行计算DATE_SUB函数的输出.避免这样的查询,他们每次都必须处理整个表格!
这样的事情怎么样:
return MainContact::where('timestamp', '>=', time() - (24*60*60))->get();
Run Code Online (Sandbox Code Playgroud)
我把它>=放在那里因为你说"一天或更少",所以他们必须有比昨天晚的时间戳.
或者,
您可以使用与 Laravel 捆绑在一起的Carbon API。
ModelName::where( 'timestamp', '>=', Carbon::now() )->get();
Run Code Online (Sandbox Code Playgroud)
参考:http : //laravel.com/docs/5.1/eloquent-mutators
| 归档时间: |
|
| 查看次数: |
31073 次 |
| 最近记录: |