有人注意到了吗?如果可以的话,该如何解决?

当我按时间对数据进行排序时,我会这样做。

SELECT TimeColumn FROM Table ORDER BY TimeColumn ASC

上面的代码很好,但是当我这样做时。

SELECT date_format(TimeColumn, '%h:%i %p') AS TimeColumn FROM Table ORDER BY TimeColumn ASC

排序不正确。

如何解决? TYSM

最佳答案

您的问题是您要重命名与列名称相同的表达式。别名用于排序-排序不正确。

只需使用合格的列名:

SELECT date_format(TimeColumn, '%h:%i %p') AS TimeColumn
FROM Table t
ORDER BY t.TimeColumn ASC;


或者,为列指定其他名称:

SELECT date_format(TimeColumn, '%h:%i %p') AS TimeColumn_hh12
FROM Table t
ORDER BY TimeColumn ASC;

关于mysql - 将时间列从24小时格式转换为12小时格式时,排序不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46965363/

10-09 08:27