Mysql 要在SQL中对时间(AM/PM)进行排序?
我面临根据am/PM进行排序的问题 这是我的表格数据Mysql 要在SQL中对时间(AM/PM)进行排序?,mysql,sql,Mysql,Sql,我面临根据am/PM进行排序的问题 这是我的表格数据 login_time 1:30 PM 11:00 AM 10:00 AM 12:30 PM 10:00 PM 11:10 AM 12:20 PM 3:40 PM 2:20 PM 我希望结果如下: 10:00 AM 11:00 AM 11:10 AM 12:20 PM 12:30 PM 1:30 PM 2:20 PM 3:30 PM 好吧,您还没有向我们展示您的SELECT查询,所以我在胡乱猜测,但我认为您可能有这样的情况: SELECT
login_time
1:30 PM
11:00 AM
10:00 AM
12:30 PM
10:00 PM
11:10 AM
12:20 PM
3:40 PM
2:20 PM
我希望结果如下:
10:00 AM
11:00 AM
11:10 AM
12:20 PM
12:30 PM
1:30 PM
2:20 PM
3:30 PM
好吧,您还没有向我们展示您的SELECT查询,所以我在胡乱猜测,但我认为您可能有这样的情况:
SELECT login_time
FROM my_table
你需要有这个:
SELECT login_time
FROM my_table
ORDER BY login_time
当然,也就是说,假设登录时间的类型是适当的
时间
您没有使用适当的数据类型保存日期时间数据,这将产生类似您现在遇到的问题。您的数据保存为varchar
,它们不是正确的日期或时间
但是,在您的情况下,您可以尝试以下操作,即首先将其转换为实时,然后获取秒数,然后按顺序进行
select * from table_name
order by time_to_sec(str_to_date(login_time,'%h:%i %p'))
如果没有时间到秒
功能也应该工作
order by str_to_date(login_time,'%h:%i %p')
如果
login\u time
存储为时间,您只需执行以下操作:
order by login_time
如果
login\u time
存储为字符串,则可以执行以下操作:
order by str_to_date(login_time, '%h:%i %p')
我希望您将时间存储为
TIME
、DATETIME
或TIMESTAMP
,而不是VARCHAR
或TEXT
。