【发布时间】:2019-06-04 04:15:24
【问题描述】:
我想获取当前月份的每个日期记录并将每个日期与 created_at 列进行比较。如果记录可用于特定日期,则显示这些记录。我有 StartDate 和 EndDate 并且我想显示每天的记录与每天的日期进行比较,然后如果记录可用,则显示。怎么做。我尝试了一些查询。但是,它不起作用..
//Display TAT Reports
public function reports() {
//Each date from current month
for ($i = 1; $i <= date('t'); $i++)
{
$dates[] = date('Y') . "-" . date('m') . "-" . str_pad($i, 2, '0',STR_PAD_LEFT);
}
$now = Carbon::now();
$monthStartDate = $now->startOfMonth()->format('Y-m-d'); //start date of month
$monthendDate = $now->endOfMonth()->format('Y-m-d'); //enddate of month
$recordsOnMonthlyBasis = DB::table('pickups')->select('tat', 'completed_at')
->whereNotNull('tat')
->whereDate('completed_at', '>=', "$monthStartDate")
->whereDate('completed_at', '<=', "$monthendDate")->get()->toArray();
}
如果我打印$recordsOnMonthlyBasis,那么它将显示开始日期和结束日期之间的所有记录。但是,我希望每天的记录与数据库中的日期进行比较。
感谢任何帮助。
【问题讨论】:
-
“我希望每天的记录与数据库中的日期进行比较”是什么意思你能举例说明一下吗?
-
@Raka 当然。比方说。我有 startDate="01/06/2019" 和 endDate="30/06/2019"。在数据库表中,我有 05/06/2019、07/06/2019、23/06/2019 和其他日期的记录。因此,我需要比较开始日期和结束日期之间的日期,以便获得 05、07、23 等的记录。
-
您的开始日期不是 01/06/2019,是吗?希望您的开始日期为“2019-06-01”!顺便说一句,如果这是 MySQL,请标记它,并查看 meta.stackoverflow.com/questions/333952/…
-
@Strawberry 老兄我有开始日期和结束日期.. 请检查我是否使用了 startOfMonth()
-
我建议您提供样本数据和相应的期望结果(一如既往)