Laravel 8 查询构建器使用 whereDate 按两个日期时间列过滤结果

Laravel 8 query builder filter results by two datetime columns with whereDate

我正在使用 Laravel 8 的查询生成器 return 来自我的数据库的特定结果。我的查询已部分满足我的大部分需求,但在尝试基于两个特定的 datetime 列进行过滤时遇到了一些问题。

我有两列:period_fromperiod_to,我希望能够 return 相关结果 after 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();