gpt4 book ai didi

Php MySql 按小时排序自定义订单

转载 作者:行者123 更新时间:2023-11-29 03:04:09 25 4
gpt4 key购买 nike

我有一个 mysql 表,其中包含 3 列文本格式的“事件”、格式为 YYYY-MM-DD 的“日期”和格式为 HH:MM 的“小时”。例如:

Event1  2013-08-20  18:30
Event2 2013-08-20 19:30
Event3 2013-08-20 20:00
Event4 2013-08-20 00:00
Event5 2013-08-20 02:30
Event6 2013-08-20 14:50
Event7 2013-08-20 00:30

数据库包含不同的日期和一天中的不同时间。我必须先按天排序所有事件,然后按小时排序,但小时的顺序必须像这个例子:

Event6  2013-08-20  14:50
Event1 2013-08-20 18:30
Event2 2013-08-20 19:30
Event3 2013-08-20 20:00
Event4 2013-08-20 00:00
Event7 2013-08-20 00:30
Event5 2013-08-20 02:30

时间 00:00、01:00、02:00... 通常在开始时,但我需要更改顺序。时间 00:00、01:00、02:00... 应该出现在最后,就像您在上一个示例中看到的那样。

我的句子是:

SELECT * FROM Events ORDER BY Date, Hour

但这句话不适合我,因为它让我找回了这个值(value)观:

Event4  2013-08-20  00:00
Event7 2013-08-20 00:30
Event5 2013-08-20 02:30
Event6 2013-08-20 14:50
Event1 2013-08-20 18:30
Event2 2013-08-20 19:30
Event3 2013-08-20 20:00

MySql 或 PHP 中的哪一句需要我按照我的意愿显示结果?

谢谢大家;)

最佳答案

可以使用MySQL函数TIME_TO_SEC()以及 ORDER BY 中的 IF 语句。

假设 05:00 下的所有内容都应该在结尾:

SELECT
*
FROM
`Events`
ORDER BY
`Date` ASC,
IF(TIME_TO_SEC(`Hour`) < TIME_TO_SEC('05:00'), 1, 0) ASC,
`Hour` ASC

Example of SQLFIDDLE .

关于Php MySql 按小时排序自定义订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18476682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com