命令由hiredate DESC在mysql中没有按预期工作

时间:2017-08-08 14:35:08

标签: mysql sql

我在mysql表中有一个列hiredate。我不得不选择此列的数据类型作为varchar,因为有时我将hiredate的值设置为'xxxx-xx-xx'或'zzzz-zz-zz',我需要将这些值保存在数据库中。< / p>

我的问题是当我用

执行查询时
select distinct
    agentname
from agentdata
where hiredate not in ('xxxx-xx-xx','zzzz-zz-zz')
order by hiredate desc

子句,它不返回正确排序的数据。但是当我用

执行查询时
select distinct
    agentname,
    hiredate
from agentdata
where hiredate not in ('xxxx-xx-xx','zzzz-zz-zz')
order by hiredate desc

子句,它返回了正确的排序数据。

区别仅在于select语句中的hiredate字段。我不知道Mysql这种行为的原因。

1 个答案:

答案 0 :(得分:1)

您需要按日期投票并按日期排序。

ORDER BY str_to_date(hiredate, '%Y-%m-%d')