如何从mysql查询中获取较早的记录与日期进行比较?

问题描述 投票:0回答:1

希望你们一切都好。实际上我正在为一个小问题而苦苦挣扎。我正在尝试获取数据库中日期不匹配的最接近记录。但不知怎的,它不起作用,或者你可以说给我提供了错误的信息。

经过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);
    }

任何解决方案表示赞赏!

php laravel eloquent
1个回答
-1
投票

如果没有与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]         
]; 

那么如果你想要第一条记录

© www.soinside.com 2019 - 2024. All rights reserved.