这是我的Laravel查询。
$fromdate = '2018-04-09';
$todate = '2018-04-28';
$dt = array($fromdate, $todate);
return DB::table('leaves')
->select('leaveId')
->whereBetween('from', [$dt[0], $dt[1]])
->orWhereBetween('to', [$dt[0], $dt[1]])
->get();
我的数据库行
'11', 'ckkl;kghhjgkgvjkvvb,,kkkkhhhhh', '2018-03-29', '2018-04-21', '2018-04-22', 'Sam User', NULL, '2018-03-29 10:52:48', '2018-03-29 10:52:48', '2', '8', '1'
'10', 'pjp\'', '2018-03-29', '2018-04-11', '2018-04-12', 'test user', NULL, '2018-03-29 10:50:28', '2018-03-29 10:50:28', '1', '8', '1'
似乎它没有检查whereBetween
子句。它只返回leaveId。谢谢你的建议。
答案 0 :(得分:1)
它将返回离开ID,因为您正在选择leaveId
。如果您希望leaveId
的所有数据都删除选择部分。
答案 1 :(得分:0)
你应该试试这个:
$fromdate = '2018-04-09';
$todate = '2018-04-28';
$dt = array($fromdate, $todate);
return DB::table('leaves')
->select('leaveId')
->whereRaw('from BETWEEN "'.$fromdate.'" AND "'.$todate.'" OR to BETWEEN "'.$fromdate .'" AND "'.$todate.'"')
->get();