SELECT * FROM table ORDER BY timestamp;
當我試圖訂購其時間戳記錄,我發現了以下順序如何通過mysql中的時間戳命令?
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
如何更改查詢,以便記錄從上午下令PM?
SELECT * FROM table ORDER BY timestamp;
當我試圖訂購其時間戳記錄,我發現了以下順序如何通過mysql中的時間戳命令?
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
如何更改查詢,以便記錄從上午下令PM?
的問題是時間戳你的字符串表示不規範的格式,也就是排序的字符串值中的時間戳順序不排序。
要按照順序排序行,可以將值的字符表示形式轉換爲DATETIME或TIMESTAMP數據類型,或者至少將其轉換爲規範格式的字符表示形式(例如'YYYY-MM-DD hh:mm :ss'與24小時制)。
的STR_TO_DATE
功能爲已知的格式轉換爲字符串表示爲DATETIME是有用的:
SELECT * FROM table
ORDER BY STR_TO_DATE(`timestamp`,'%m/%d/%Y %h:%i:%s %p')
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date
只需添加DESC
:
SELECT * FROM table ORDER BY timestamp DESC;
你將要使用STR_TO_DATE()
select *
from dates
order by STR_TO_DATE(dt,'%m/%d/%Y %h:%i:%s') desc
什麼是你的表格模式? – Jocelyn
上面顯示的字段的數據類型是什麼? – Taryn
@bluefeet數據類型是varchar(30) – ben