如何使用Laravel查询构造器实现含GETDATE()的BETWEEN条件查询
Laravel查询构造器实现指定条件查询
你可以通过以下几种方式实现所需的查询条件:
方法一:使用whereRaw(最简洁)
直接通过whereRaw写入原生SQL条件片段,适配包含数据库特定函数的场景:
$results = DB::table('your_table') ->where('item', 1) ->whereRaw('GETDATE() BETWEEN date1 AND date2') ->get();
方法二:拆分BETWEEN为范围条件
如果不想直接写原生SQL片段,可将BETWEEN拆分为两个比较条件,结合DB::raw使用:
$results = DB::table('your_table') ->where('item', 1) ->where(DB::raw('GETDATE()'), '>=', DB::raw('date1')) ->where(DB::raw('GETDATE()'), '<=', DB::raw('date2')) ->get();
针对Eloquent模型的写法
如果使用Eloquent模型,只需将DB::table('your_table')替换为对应的模型类即可:
use App\Models\YourModel; $results = YourModel::where('item', 1) ->whereRaw('GETDATE() BETWEEN date1 AND date2') ->get();
注:
GETDATE()是SQL Server的当前日期时间函数,若使用其他数据库(如MySQL)需替换为对应函数(如NOW())。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

