Laravel 8 查询构建器使用 whereDate 按两个日期时间列过滤结果
Laravel 8 query builder filter results by two datetime columns with whereDate
我正在使用 Laravel 8 的查询生成器 return 来自我的数据库的特定结果。我的查询已部分满足我的大部分需求,但在尝试基于两个特定的 datetime
列进行过滤时遇到了一些问题。
我有两列:period_from
和 period_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();
我正在使用 Laravel 8 的查询生成器 return 来自我的数据库的特定结果。我的查询已部分满足我的大部分需求,但在尝试基于两个特定的 datetime
列进行过滤时遇到了一些问题。
我有两列:period_from
和 period_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();