2016-07-07 69 views
3

私は雄弁なクエリを使用してテーブルからデータを取得しています。間$dateがで開始しfinished_at列こと、および行のデータを取得:、$date(2016年6月18日EX)を与えられ、私は何をしたいlaravelの2つの日付間でデータを取得する

id started_at finished_at 
1 2016-06-01 2016-06-30 
2 2016-05-03 2016-05-28 

:表の列は次のようになり。

Laravel documentationwhereBetweenという句が見つかりましたが、正しく使用することはできません。

答えて

6

Carbonを使用できるのであれば、このコードはうまくいきます。

$dateS = new Carbon('first day of January 2016'); 
$dateE = new Carbon('first day of November 2016'); 
$result = ModelName::whereBetween('created_at', [$dateS->format('Y-m-d')." 00:00:00", $dateE->format('Y-m-d')." 23:59:59"])->get(); 

それとも

DB::enableQueryLog(); 
$dateS = new Carbon('first day of January 2016'); 
$dateE = new Carbon('first day of November 2016'); 
$result = ModelName::whereBetween('created_at', [$dateS->format('Y-m-d')." 00:00:00", $dateE->format('Y-m-d')." 23:59:59"])->get(); 
var_dump($result, DB::getQueryLog()); 
よう DB::enableQueryLog();DB::getQueryLog();機能を使用してクエリをデバッグして問題を確認することができます
3

はこのような何かを試してみてください。

$date1 = Carbon::today()->toDateString(); 
$date2 = Carbon::today()->toDateString(); 

$myModel = MyModel::find(1); 
$myModel->whereBetween('created_at', [$date1, $date2]); 
$myModel->get(); 

オフもちろん、あなたが日付を変更する必要があります。

関連する問題