我必须订购具有自定义时间格式的数据库表。表中使用的时间格式如下:

1:30:下午
下午8:35:
5:50:下午
下午7时00

我尝试了以下操作,但未按正确的顺序对它们进行排序。

            ->orderBy('time_schedule.start_time', 'asc');


用上述方法对进行排序后,结果如下

1:30:下午
5:50:下午
下午8:35:
下午7时00

我无法更改应用程序的那部分内容,因此无法更改保存的格式。

而且数据必须以laravel的形式来排序,在我的情况下不能使用前端排序。

请让我知道是否有一种方法可以使用laravel进行排序。

最佳答案

您可以使用STR_TO_DATE函数,例如:

SELECT
  start_time
FROM
  tablename
ORDER BY
  STR_TO_DATE(start_time, '%l:%i %p');


为此,您必须使用raw查询。

Reference

关于php - 如何在Laravel中按自定义时间格式排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44405031/

10-09 00:17