Laravel 8查询生成器通过两个日期时间列过滤结果,其中包含日期



我正在使用Laravel 8的查询生成器从数据库中返回一个特定的结果。我的查询部分能够满足我的大部分需求,但在尝试基于两个特定的datetime列进行筛选时遇到了一些问题。

我有两列:period_fromperiod_to,我希望能够在period_from列上的给定日期之后返回相关结果,但在具有不同日期的period_to列之前,这就是我迄今为止得到的结果:

$events = GoogleAnalytics::where('event_category', $category)
->where('event_action', $action)
->whereDate('period_from', $dateFrom)
->whereDate('period_to', $dateTo)
->orderBy('created_at', 'desc')
->first();

不幸的是,这不起作用,如果我删除period_to列,我可以得到结果,但我需要在两个日期之间进行筛选。为什么不起作用?我能得到一些指导吗?:(

尝试将运算符与where查询一起添加。

$events = GoogleAnalytics::where('event_category', $category)
->where('event_action', $action)
->where('period_from', '<', $dateFrom)
->where('period_to', '>', $dateTo)
->orderBy('created_at', 'desc')
->first();

试试这个

$start_date = Carbon::parse($request->start_date)
->toDateTimeString();
$end_date = Carbon::parse($request->end_date)
->toDateTimeString();
return User::whereBetween('created_at', [
$start_date, $end_date
])->get();

它帮助了我,从codegrepper 获得了这篇文章中的信息

最新更新