嗨,我在我的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();如果能帮上忙我会很感激的。致以最良好的问候;)
发布于 2017-06-29 03:36:22
更改->whereBetween('DATE(posts.created_at)'
转到->whereBetween(DB::raw('DATE(posts.created_at)'))
如果想要在查询中添加一些原始表达式,可以使用laravel documentation中提到的DB::row方法
发布于 2017-06-29 07:40:39
尝试像这样使用Carbon:
use Carbon\Carbon;
...
$dateFrom = Carbon::parse($request->dateFrom);
$dateTo = Carbon::parse($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();https://stackoverflow.com/questions/44810536
复制相似问题