Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询varchar保存日期的MySQL订单_Mysql - Fatal编程技术网

查询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中的正确选择)。