希望你们一切都好。实际上我正在为一个小问题而苦苦挣扎。我正在尝试获取数据库中日期不匹配的最接近记录。但不知怎的,它不起作用,或者你可以说给我提供了错误的信息。
经过2-3天的研究。我的 Jira 票证已完成并再次回复我。所以我需要你的帮助来解决这个问题。下面是我的代码,您可以检查并帮助我找到错误。
$atg = @DB::table('mc_atginfo')
->where('SiteId', Input::get('siteId'))
->where('TankId', Input::get('tankId'))
->orderByRaw('ABS(TIMESTAMPDIFF(SECOND, ATGDateTime,?))', [$inputDateTimeFormatted])
->orderBy('ATGDateTime', 'desc')
->first();
return Response::json($atg);
}
任何解决方案表示赞赏!
如果没有与Carbon匹配的日期,我建议您自行处理记录。您可以创建一个数组,其中包含记录 ID、日期以及与您查询的日期之间的天数差异。之后,您可以使用天数对数组进行排序,获取第一个
x
记录,然后使用数组中的 id 获取它们的数据。示例数组:
$records = [
['id_1','23-03-2001',2]
['id_2','23-03-2009',2561]
['id_3','23-03-2017',4578]
['id_4','24-03-2001',1]
];
排序数组:
$records = [
['id_4','24-03-2001',1]
['id_1','23-03-2001',2]
['id_2','23-03-2009',2561]
['id_3','23-03-2017',4578]
];
那么如果你想要第一条记录