查询varchar保存日期的MySQL订单
我尝试按日期对查询结果排序,其格式为查询varchar保存日期的MySQL订单,mysql,Mysql,我尝试按日期对查询结果排序,其格式为yyyy/mm/dd,但我使用此查询无效 SELECT * FROM table ORDER BY STR_TO_DATE(date, '%y/%m/%d') 我无法更改存储日期的字段类型,因此我希望可以订购日期后数据输入 感谢您的帮助和建议。如果日期是这种格式,您当然不需要将其转换为日期?该格式将按字母顺序排序,假设它是0填充的。。。(即2012年7月3日为2012/07/03…) 所以你可以去: select * from table order by
yyyy/mm/dd
,但我使用此查询无效
SELECT * FROM table ORDER BY STR_TO_DATE(date, '%y/%m/%d')
我无法更改存储日期的字段类型,因此我希望可以订购日期后数据输入
感谢您的帮助和建议。如果日期是这种格式,您当然不需要将其转换为日期?该格式将按字母顺序排序,假设它是0填充的。。。(即2012年7月3日为2012/07/03…) 所以你可以去:
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*从表顺序按STR_到_日期(日期,'%Y/%m/%d')
小写的Y代表yy,大写的Y代表yyyy。从表中按日期顺序选择*+1因为此日期格式的选择通常是专门完成的,因为它是自然排序的(这并不意味着它是提供日期格式的DB中的正确选择)。