我尝试按格式为yyyy/mm/dd
的日期排序查询的结果,并且我正在使用此查询无济于事。MySQL排序查询varchar保存日期
SELECT * FROM table ORDER BY STR_TO_DATE(date, '%y/%m/%d')
我不能改变存储日期的字段的类型,所以我希望我可以订购日期后数据输入。
任何帮助和建议表示赞赏。
我尝试按格式为yyyy/mm/dd
的日期排序查询的结果,并且我正在使用此查询无济于事。MySQL排序查询varchar保存日期
SELECT * FROM table ORDER BY STR_TO_DATE(date, '%y/%m/%d')
我不能改变存储日期的字段的类型,所以我希望我可以订购日期后数据输入。
任何帮助和建议表示赞赏。
如果日期是这种格式,你不需要将它转换为日期,当然?该格式将字母顺序排序,假设它为0填充...(即七月是2012 2012/07/03 7月3日...)
所以,你可以去:
select * from table order by date
什么类型字段是你的date
字段:你确定它是一个varchar
?
假设它是一个varchar
,你可以工作,什么是会走错了:
select str_to_date(date, '%y/%m/%d') from table
你(应该)获得所有空的,因为%y
是错误的。尝试:
select str_to_date(date, '%Y/%m/%d') from table
它应该工作。但如前所述,您不必转换为排序。
尝试用资本Y:
SELECT * FROM table ORDER BY STR_TO_DATE(date, '%Y/%m/%d')
小写Y是为YY,大写字母YYYY。
SELECT * FROM表ORDER BY日期
1,因为此日期格式的选择通常是专门做,因为它是自然排序(这并不意味着它是在一个DB其提供的日期格式正确的选择) 。 –