2017-01-02 6 views
0

私は時間フィールドを持つテーブルを持っています。時間形式はHH:mmです。 時間は22:00から06:00までです。時間単位でmysqlを注文22:00

Hour 
22:00 
22:30 
23:15 
00:15 
01:30 
03:50 
05:30 

しかし、私の現在のクエリに:

Hour 
00:15 
01:30 
03:50 
05:30 
22:00 
22:30 
23:15 

はそれが可能です:

select * from events order by hour 

彼らはこのようになり は、私は、彼らがこのように見えるように、行をソートしたいですか?ありがとう!

+0

ORDERの場合とBY ' ケースによってEVENTS.Hour からイベント順序を選択 WHEN HOUR(EVENTS.Hour)> = 22 ELSE THEN 0 END 'またはORDER BY with IF' SELECT EVENTS.Hour FROM イベント BY ORDER IF( HOUR(EVENTS.Hour)> = 22 、0 、1 ) 'HOUR関数を使用するSUBSTR関数を使用して、その後何とかよりきれいです –

答えて

1

これを試してください:

SELECT 
    * 
FROM 
    events 
ORDER BY CASE 
    WHEN SUBSTR(hour, 1, 2) >= '22' THEN 0 
    ELSE 1 
END , hour; 
関連する問題