sql中的日期排序

时间:2018-01-02 11:25:45

标签: mysql sql

示例:

sh_date
30.11.2017
01.01.2018
31.12.2017

我想这样:

sh_date
30.11.2017
31.12.2017
01.01.2018

3 个答案:

答案 0 :(得分:0)

尝试这个

select sh_date from table_name order by sh_date ASC

sh_date是char或varchar而不是日期,否则你的order by子句会没问题。

SELECT sh_date  
FROM 
     table_name
ORDER BY 
   CONVERT(sh_date , EventDate,101)  ASC

答案 1 :(得分:0)

您必须将其转换为日期时间,然后您可以订购:

select sh_date
from table_name
order by convert(datetime, sh_date, 103) ASC

进一步研究:请转到此主题Order by date (varchar)?

答案 2 :(得分:0)

由于日期是varchar

你可以在mysql中试试一下

SELECT sh_date
FROM table_name
ORDER BY STR_TO_DATE(REPLACE(sh_date ,'.',',') ,'%d,%m,%Y') ASC

需要在排序前将字符串转换为日期

For eg:30.11.2017 it will convert to date
SELECT STR_TO_DATE(REPLACE('30.11.2017' ,'.',',') ,'%d,%m,%Y')

Output
2017-11-30

如果遗漏任何内容,请添加