Laravel:使用带有MySql的查询构建器按字符串日期排序

时间:2017-12-22 11:45:58

标签: php mysql laravel

该表有一个config.setAutoIndex("validate");类型的startDate列,因此需要使用此列按升序获取行。

试过这个:

VARCHAR

上面没有返回正确的顺序,如何按clouse顺序传递字符串日期?

示例:

orderBy(DB::raw("DATE(startDate)"), 'ASC')

'startDate' => '07-Nov-2017'

2 个答案:

答案 0 :(得分:1)

您需要将日期转换为MySQL格式。尝试使用DATE_FORMAT

$items = DB::table("mytable")
           ->orderBy(DB::raw("DATE_FORMAT(startDate,'%d-%M-%Y')"), 'ASC')
           ->where('userId','=',$userId)
           ->get();

答案 1 :(得分:0)

Gunaseelan是对的,但由于SYNhax错误,请尝试以下方法:

$items = DB::table("mytable")->where('userId','=',$userId)->orderByRaw("DATE_FORMAT('d-m-Y',startDate), ASC")->get();