我在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这种行为的原因。
答案 0 :(得分:1)
您需要按日期投票并按日期排序。
ORDER BY str_to_date(hiredate, '%Y-%m-%d')