首页 > 解决方案 > 如何使用 Laravel 和 Carbon 在两个 x 天之间进行查询?

问题描述

我正在尝试检索过去 30 到 60 天的数据。这意味着我将忽略第 0 天到第 30 天以及第 60 天之后的所有内容。

我目前的进展是这样的:

$previousMonth = DB::table('table')
->select('table.*')
->whereBetween('date', [Carbon::now()->subDays(30), Carbon::now()->subDays(60)])
->get();

return $previousMonth;

“日期”在 mysql 数据库中具有 DATETIME 的数据类型。

标签: phpsqllaravelphp-carbon

解决方案


更改顺序,因为Carbon::now()->subDays(30)大于Carbon::now()->subDays(60),您可以使用startOfDay()来获取一天的开始:

->whereBetween('date', [Carbon::now()->subDays(60)->startOfDay(), Carbon::now()->subDays(30)->startOfDay()])

推荐阅读