我的桌子上有一个“joindate”字段。它由混合格式的数据组成。 (2015年1月14日和2015年1月14日)。我想在日期的desc顺序从该表中获取数据。我怎样才能做到这一点 ? joindate的类型是varchar。 我试过以下方式;
使用str_to_date将该字符串转换为日期。但它还是不起作用。
select * from employee where employeeid='14' order by str_to_date(joindate,'%d.%m.%Y') desc;
答案 0 :(得分:0)
尝试使用date_format
为我工作
select * from employee where employeeid='14' order by date_format(str_to_date(joindate,'%d-%m-%Y'), '%d.%m.%Y') desc;
答案 1 :(得分:0)
如果 joindates 在数据库上,那么您可以使用
SELECT * FROM employee WHERE employeeid = '14' ORDER BY joindate DESC
它可以消除这些百分比字符吗?
答案 2 :(得分:0)
您可以尝试此查询:
select * from employee where employeeid='14' order by if(strcmp(str_to_date(datejoin,'%d.%m.%Y'),datejoin),datejoin,date_format(str_to_date(datejoin,'%d-%m-%Y'),'%d.%m.%Y')) desc;