如何在mysql中按时间戳排序?

如何在mysql中按时间戳排序?,mysql,Mysql,当我试图按时间戳对记录进行排序时,我得到了以下顺序 SELECT * FROM table ORDER BY timestamp; 如何更改查询以使记录从AM排序到PM?只需添加DESC: 08/20/2012 02:09:39 PM 08/20/2012 03:19:08 PM 08/20/2012 09:04:24 AM 08/20/2012 09:05:25 AM 问题是时间戳的字符串表示形式不是标准格式,也就是说,对字符串值进行排序不会按照时间戳顺序进行排序 要按顺序对行进行排序,可

当我试图按时间戳对记录进行排序时,我得到了以下顺序

SELECT * FROM table ORDER BY timestamp;

如何更改查询以使记录从AM排序到PM?

只需添加
DESC

08/20/2012 02:09:39 PM
08/20/2012 03:19:08 PM
08/20/2012 09:04:24 AM
08/20/2012 09:05:25 AM

问题是时间戳的字符串表示形式不是标准格式,也就是说,对字符串值进行排序不会按照时间戳顺序进行排序

要按顺序对行进行排序,可以将值的字符表示形式转换为DATETIME或TIMESTAMP数据类型,或者至少转换为规范格式的字符表示形式(例如带有24小时时钟的“YYYY-MM-DD hh:MM:ss”)

STR_TO_DATE
函数用于将已知格式的字符串表示形式转换为日期时间:

SELECT * FROM table ORDER BY timestamp DESC;
您将要使用


请参见上面显示的字段的数据类型是什么?@bluefeet数据类型是varchar(30)
SELECT * FROM table
ORDER BY STR_TO_DATE(`timestamp`,'%m/%d/%Y %h:%i:%s %p')
select *
from dates
order by STR_TO_DATE(dt,'%m/%d/%Y %h:%i:%s') desc