Mysql SQL时间列不按升序排序
我在尝试编写一个按时间列排序的SQLstatement时遇到了一些问题,该列是varchar格式的升序。以下是我的SQL语句:Mysql SQL时间列不按升序排序,mysql,sql,time,sql-order-by,Mysql,Sql,Time,Sql Order By,我在尝试编写一个按时间列排序的SQLstatement时遇到了一些问题,该列是varchar格式的升序。以下是我的SQL语句: SELECT mrtpopTime, mrtpopAmt FROM tm_mrtpop WHERE mrtpopName = '' ORDER BY mrtpopTime 我得到了这些结果: 从图中可以看出,它是按字符逐个排序的。是否有这样的分类: 0:00, 1:00, 2:00, 3:00 all the way to 23:00 有什么想法吗?提前谢谢 将v
SELECT mrtpopTime, mrtpopAmt
FROM tm_mrtpop
WHERE mrtpopName = ''
ORDER BY mrtpopTime
我得到了这些结果:
从图中可以看出,它是按字符逐个排序的。是否有这样的分类:
0:00, 1:00, 2:00, 3:00 all the way to 23:00
有什么想法吗?提前谢谢 将varchar time列转换为
时间(或虚拟日期加时间),并按以下顺序排序:
SELECT mrtpopTime, mrtpopAmt
FROM tm_mrtpop
WHERE mrtpopName = ''
ORDER BY STR_TO_DATE(mrtpopTime, '%H:%i')
将varchar time列转换为时间(或虚拟日期加时间),并按以下顺序排序:
SELECT mrtpopTime, mrtpopAmt
FROM tm_mrtpop
WHERE mrtpopName = ''
ORDER BY STR_TO_DATE(mrtpopTime, '%H:%i')
因为mrtpopTime在varchar中,所以它不会排序。因此,将其抛入浮动并按顺序排列
SELECT mrtpopTime, mrtpopAmt
FROM tm_mrtpop
WHERE mrtpopName = ''
ORDER BY 'cast(mrtpopTime as float) time'
因为mrtpopTime在varchar中,所以它不会排序。因此,将其抛入浮动并按顺序排列
SELECT mrtpopTime, mrtpopAmt
FROM tm_mrtpop
WHERE mrtpopName = ''
ORDER BY 'cast(mrtpopTime as float) time'