2017-12-22 2 views
0

테이블의 시작 날짜 열은 VARCHAR 유형이므로이 열을 사용하여 오름차순으로 행을 가져와야합니다. 어떻게 clouse 순서로 문자열 날짜를 통과Laravel : MySql을 사용하는 쿼리 작성기를 사용하여 문자열 날짜순으로 정렬

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

위의 반환하지 않습니다 올바른 순서 :

이 봤어?

예 :

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

$items = DB::table("mytable")->orderBy(DB::raw("DATE(startDate)"), 'ASC')->where('userId','=',$userId)->get();

+0

'startDate' 형식은 무엇입니까? – Laerte

+0

Y-m-d입니까? 'startDate' 콘텐츠의 예를 보여주세요. – Laerte

+0

MySQL을 잘못 사용해서 죄송합니다! – Laerte

답변

1

당신은 MySQL의 형식으로 날짜를 변환해야합니다. DATE_FORMAT를 사용해보십시오 :

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

@MKhalidJunaid - MySQL. – 151291

+0

@ 151291 미래에 당신의 질문에 태그를 달아주세요. –

+0

@Laerte my bad .. –

0

Gunaseelan를 잘했지만, synthax 오류와 함께,이 시도 :

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

시도했지만 정확하지 않음 - DATE ('dm-Y', startDate), ASC '' ''DATE (startDate) ASC '' ' "DATE ​​('dm DATE (strtotime (startDate)), ASC "" ""DATE ​​(strtotime (startDate)), "" "DATE ​​(strtotime (startDate)) ASC" " ")) ASC "" – 151291

관련 문제