【问题标题】:mysql order by hour starting from 22:00 [duplicate]mysql从22:00开始按小时排序[重复]
【发布时间】:2017-01-02 17:07:16
【问题描述】:

我有一张带有时间字段的表格。时间格式为 HH:mm。 营业时间仅为 22:00 至 06:00。 我想对行进行排序,使它们看起来像这样:

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

但在我当前的查询中:

select * from events order by hour

它们看起来像这样:

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

有可能吗?谢谢!

【问题讨论】:

  • ORDER BY with case SELECT EVENTS.Hour FROM EVENTS ORDER BY CASE WHEN HOUR(EVENTS.Hour) >= 22 THEN 0 ELSE 1 END 或 ORDER BY with IF SELECT EVENTS.Hour FROM EVENTS ORDER BY IF ( HOUR(EVENTS.Hour) >= 22 , 0 , 1 ) 使用 HOUR 函数比使用 SUBSTR 函数更干净

标签: mysql time hour


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2020-01-23
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多