您好,我在我的 laravel 项目中有一个查询,它应该检索范围之间的日期。我的查询是:
$dateFrom = date("Y-m-d", strtotime($request->dateFrom));
$dateTo = date("Y-m-d", strtotime($request->dateTo));
$posts = DB::table('posts')->join('categories','posts.category_id','=','categories.id')->
join('users','posts.user_id','=','users.id')
->select('posts.id','posts.topic','categories.category_name','posts.created_at','users.name')
->whereBetween('posts.created_at',[$dateFrom,$dateTo])
->get();
我想在 posts.created_at
列上使用 DATE mysql_function,但我不知道该怎么做。以下查询不起作用:
$dateFrom = date("Y-m-d", strtotime($request->dateFrom));
$dateTo = date("Y-m-d", strtotime($request->dateTo));
$posts = DB::table('posts')->join('categories','posts.category_id','=','categories.id')->
join('users','posts.user_id','=','users.id')
->select('posts.id','posts.topic','categories.category_name','posts.created_at','users.name')
->whereBetween('DATE(posts.created_at)',[$dateFrom,$dateTo])
->get();
我很乐意提供帮助。最好的问候 ;)
最佳答案
更改 ->whereBetween('DATE(posts.created_at)'
到 ->whereBetween(DB::raw('DATE(posts.created_at)'))
如果您想在查询中添加一些原始表达式,您可以使用 DB::row
方法,如 laravel documentation 中所述
关于mysql - 具有 DATE mysql 函数的 Laravel 查询生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44810536/