【发布时间】:2013-06-05 09:24:10
【问题描述】:
我有一个包含 DD/MM/YYYY 格式的日期的字段,我需要按此字段对结果进行排序,但它被保存为 VARCHAR,我无法更改。有解决办法吗?
我真的没有办法更改字段类型,所以请不要说这是一个坏方法,因为我已经知道了。我只需要知道这是否可能。
提前感谢您的任何帮助和建议。
【问题讨论】:
我有一个包含 DD/MM/YYYY 格式的日期的字段,我需要按此字段对结果进行排序,但它被保存为 VARCHAR,我无法更改。有解决办法吗?
我真的没有办法更改字段类型,所以请不要说这是一个坏方法,因为我已经知道了。我只需要知道这是否可能。
提前感谢您的任何帮助和建议。
【问题讨论】:
您可以通过以下方式进行,
SELECT ...
FROM ...
ORDER BY STR_TO_DATE(yourDate,'%d-%m-%Y') DESC
【讨论】:
使用STR_TO_DATE:
http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_str-to-date
...
order by str_to_date(myCol, '%d/%m/%Y')
【讨论】:
:)
使用STR_TO_DATE() MySQL 函数:
SELECT * FROM your_table ORDER BY STR_TO_DATE(your_date_column, '%d/%M/%Y') DESC;
旁注:STR_TO_DATE 将字符串转换为日期,而DATE_FORMAT 将日期转换为字符串
【讨论】:
【讨论】:
ORDER BY CONCAT(SUBSTR(field, 7, 4), SUBSTR(field, 4, 2), SUBSTR(field, 1, 2)) DESC
【讨论】: