Mysql 将时间列从24小时格式转换为12小时格式时排序不正确

Mysql 将时间列从24小时格式转换为12小时格式时排序不正确,mysql,sql,Mysql,Sql,有人注意到了吗?如果是这样,如何解决这个问题 当我按时间排序数据时,我这样做 按时间列ASC从表顺序中选择时间列 上面的代码很好,但是当我这样做的时候 选择日期\u格式(时间列,'%h:%i%p')作为按时间列ASC排序的表中的时间列 排序不正确 如何解决这个问题?TYSM您的问题是您正在使用与列相同的名称重命名表达式。别名用于排序,但排序不正确 只需使用限定的列名: SELECT date_format(TimeColumn, '%h:%i %p') AS TimeColumn FROM Ta

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

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

按时间列ASC从表顺序中选择时间列

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

选择日期\u格式(时间列,'%h:%i%p')作为按时间列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;

问题是您正在重命名与列同名的表达式。别名用于排序,但排序不正确

只需使用限定的列名:

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;

你的意思是我将坚持使用列名称进行排序,然后使用不同的名称作为
来修复我的问题。你的意思是我将坚持使用列名称进行排序,然后使用不同的名称作为
来修复我的问题。