将时间列从24转换为12小时格式时的排序错误

时间:2017-10-26 23:34:22

标签: mysql sql

有人注意到了吗?如果有,如何解决这个问题?

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

upsert

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

SELECT TimeColumn FROM Table ORDER BY TimeColumn ASC

排序不正确。

如何解决这个问题? TYSM

1 个答案:

答案 0 :(得分:2)

您的问题是您正在使用与列相同的名称重命名表达式。别名用于排序 - 它没有正确排序。

只需使用限定列名:

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;