2017-10-18 4 views
0

私のデータベースcreadted_at data 2017-11-07 18:58:16,2017-11-07 19:58:16。私は、日付2017年11月7日 内のデータを検索するためSQLクエリで%LIKE%でWhereBetween日付を使用する方法

'like', '%'.2017-11-07.'%' 

->WhereBetween('created_at', ['2017-11-07', '2017-12-07']) 

私は私のクエリにLike % %を置くことができる方法を確認していないWhereBetweenここで使用しようとする私の完全なコントローラ

$b = DB::table("v_dealer_sell_time") 
      ->select([ 
        'product_name', 
        DB::raw('COALESCE(SUM(total_price), 0) AS total_price'), 
        DB::raw('COALESCE(SUM(total_product), 0) AS total_product') 
        ]) 
      ->WhereBetween('created_at', ['2017-11-07', '2017-11-07']) 
      ->groupBy('product_name') 
      ->get(); 
+0

あなたが好きなものを持っています同じ日に作成されたデータが必要です。2017-11-07 – Maraboc

+0

Opps私は2017-11-07と2017-12-07の間で更新しました – user8663822

+0

laravelのバージョンは何ですか? – Maraboc

答えて

1

:あなたは、2つの日付の間から、それをしたい場合は

$b = DB::table("v_dealer_sell_time") 
      ->select([ 
        'product_name', 
        DB::raw('COALESCE(SUM(total_price), 0) AS total_price'), 
        DB::raw('COALESCE(SUM(total_product), 0) AS total_product') 
        ]) 
      ->WhereDate('created_at', '=', $date) 
      ->groupBy('product_name') 
      ->get(); 

をwhereBetweenなどの使用これは:

$b = DB::table("v_dealer_sell_time") 
      ->select([ 
        'product_name', 
        DB::raw('COALESCE(SUM(total_price), 0) AS total_price'), 
        DB::raw('COALESCE(SUM(total_product), 0) AS total_product') 
        ]) 
      ->WhereBetween('created_at', [Carbon::parse('2017-11-07')->startOfDay(), Carbon::parse('2017-12-07')->endOfDay()]) 
      ->groupBy('product_name') 
      ->get(); 

PS:あなたのコントローラーの上部にuse Carbon\Carbon;を追加することを忘れないでください。

+0

Opps私はそれを2017-11-07と2017-12-07の間で更新しました – user8663822

+0

更新を確認してください) – Maraboc

+0

いつも助けてくれます。]] – user8663822

1

使用whereDate()です:

$date = Carbon::parse($date)->toDateString(); 
.... 
->whereDate('created_at', $date) 

またはwhereBetween()

あなたはこのよう whereDateを使用しかし、以来5.3( Documentation)することができ、同じ特定の日付に作成されたもの場合
$date = Carbon::parse($date); 
$from = $date->copy()->startOfDay(); 
$to = $date->copy()->endOfDay(); 
.... 
->whereBetween('created_at', [$from, $to]) 
+1

オークションの前にカーボンを試してはいけない – user8663822

1

検索機能に関連したこの日付検索した場合は、この


コード

->WhereBetween('created_at', ['2017-11-07', '2017-11-07']) 

変更このような何かを持っています

この

->WhereBetween('created_at', ['2017-11-07 00:00:00', '2017-11-07 23:59:59']) 

WHY?

2017-11-07 00:00:00 - 一日のスタート
2017-11-07 23:59:59 - 一日の終わり


あなたがtosql()を使用してクエリをチェックすると、それはこの

.`created_at` between ? and ? " 
+0

ありがとうございます。これは私が探しているものです – user8663822

関連する問題