2015-07-28 127 views
0

我有一个表像下面结构, enter image description hereLaravel 4.2 WhereBetween不工作

entry_added_date正存储日期等效场,(2015年7月27日)。

现在我想filer这两个日期之间的条目与此字段。

我尝试下面的代码,

$start = Input::get('start'); 
    $end = Input::get('end'); 

$arr = DB::table('otc_revenue_entries') 
     ->whereBetween('entry_added_date',array($start,$end)) 
     ->get(); 
return Response::json(['data',$arr]); 

哪里是我的代码错了,?

+0

做' - > toSql()',并显示其生成的SQL。也许这会帮助,因为我认为代码是正确的。也许你应该使用'int'值来使用Laravel的'whereBetween()' – ventaquil

+0

为什么你不使用'created_at'而是'entry_added_date'?在表中有没有“正确的”entry_added_date(不是空的,并且匹配你的$ start,$ end)的行? – M0rtiis

回答

2

检查下面的代码..

$startdate = new DateTime($start); 
    $start_date = $startdate->format("Y-m-d"); 
    $enddate = new DateTime($end); 
    $end_date = $enddate->format("Y-m-d"); 

$arr = DB::table('otc_revenue_entries') 
     ->leftJoin('otc_users','otc_users.user_id','=','otc_revenue_entries.entry_added_by') 
     ->leftJoin('otc_branches','otc_branches.branch_id','=','otc_revenue_entries.entry_branch') 
     ->whereBetween('entry_added_date',array($start_date,$end_date)) 
     ->get(); 

return Response::json(['data',$arr]); 
0

确保您的$ start和$ end实际上与您的entry_added_date格式相同,比较可能因此而失败。