繁体   English   中英

Laravel:通过whereBetween子句检查时间

[英]Laravel : checking the time by whereBetween clause

我想检查输入的时间是否已经存在于数据库中? 在$ dbsum和$ dbesum中,我正在做总和,例如,如果我输入开始时间11:30,那么它将在$ dbsum中给出690,如果我输入结束时间12.30,则它将在$ dbesum中给出750。 'c_start'和'c_end'是数据库中已经存在的总和。现在我要检查$ dbsum和$ dbesum在'c_start'和'c_end'之间是否存在。 我的查询就像下面的控制器。 但它不起作用。

    $dbstime = explode(':',$request->input('starttime'));
    $dbetime = explode(':',$request->input('endtime'));

    $dbstime[0] = $dbstime[0]*60;
    $dbetime[0] = $dbetime[0]*60;

    $dbsum = array_sum($dbstime);
    $dbesum = array_sum($dbetime); 

     $users=DB::table("bookings")
    ->select("bookdate")
    ->where([
            ['bookdate', '=', $request->input('bookdate')],
            ['roomname', '=', $request->input('roomname')],
            ['starttime', '=', $request->input('starttime')],
            ['endtime', '=', $request->input('endtime')],
    ->whereBetween('c_start', [$dbsum, $dbesum])
    ->whereBetween('c_end', [$dbsum, $dbesum])

    ->get();
    $users=DB::table("bookings") 
    ->select("id") 
    ->where('bookdate', '=', $request->input('bookdate')) 
    ->where('roomname', '=', $request->input('roomname')) 
    ->where(function ($query){
    $query->where($dbsum, '>', 'c_start');
    $query->orWhere($dbsum, '<', 'c_end');
    })
    ->orWhere(function($query){
    $query->where($dbesum, '>', 'c_start');
    $query->orWhere($dbesum, '<', 'c_end');
    }) 
    ->get(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM