Laravel中获取三张表指定日期范围最大document_date的最大值
实现方案
前提条件
确保你已经为三张表创建了对应的Eloquent模型:
TableA对应tableATableB对应tableBTableC对应tableC
代码实现
// 给定的日期范围变量 $date1 = '2023-01-01'; $date2 = '2023-08-01'; // 分别查询每张表在日期范围内的最大document_date $maxDateA = TableA::whereBetween('document_date', [$date1, $date2])->max('document_date'); $maxDateB = TableB::whereBetween('document_date', [$date1, $date2])->max('document_date'); $maxDateC = TableC::whereBetween('document_date', [$date1, $date2])->max('document_date'); // 收集有效日期(过滤空值)并取其中的最大值 $validDates = array_filter([$maxDateA, $maxDateB, $maxDateC]); $finalMaxDate = !empty($validDates) ? max($validDates) : null; // 返回最终结果 return $finalMaxDate;
代码说明
whereBetween('document_date', [$date1, $date2]):精准筛选出document_date处于指定区间内的记录max('document_date'):直接获取该区间内的最大日期,若区间内无匹配记录则返回nullarray_filter:过滤掉可能的null值,避免后续max函数因空值报错max($validDates):从所有有效日期中取出最大的那个值
内容的提问来源于stack exchange,提问作者Sona Rijesh
相关产品推荐
相关产品推荐

