Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有日期mysql函数的Laravel查询生成器_Mysql_Laravel_Laravel Query Builder - Fatal编程技术网

带有日期mysql函数的Laravel查询生成器

带有日期mysql函数的Laravel查询生成器,mysql,laravel,laravel-query-builder,Mysql,Laravel,Laravel Query Builder,嗨,我在我的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','=','ca

嗨,我在我的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列上使用DATE mysql\u函数。在
上创建,但我不知道怎么做。以下查询不起作用:

$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();

我将非常感谢你的帮助。致以最良好的祝愿;)

更改
->日期(posts.created_at)

->之间的时间间隔(DB::raw('DATE(posts.created_at'))


如果要在查询中添加一些原始表达式,可以使用
DB::row
方法,如中所述尝试使用
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();
为什么不改为使用两个..?类似于
->whereDate('posts.created_at','>=',$dateFrom)->whereDate('posts.created_at','