日期:2014-05-17  浏览次数:20821 次

时间字符串的排序为何不一致
本帖最后由 koala_boy 于 2013-08-26 20:12:09 编辑
SELECT MONDAY,COUNT(*) from (select concat(concat(month(FBizdate),'-'),dayofmonth(FBizdate)) AS MONDAY  FROM A 
where fbizdate >= convert(datetime,'2013-08-1')
order by fbizdate ) GROUP BY MONDAY ORDER BY MONDAY 

内外循环的顺序太不一致
怎么做才能 8-6     8-7 这么走下去?合并之后,日期的排序就是不照着这个来,求解释,谢谢!
字符串排序

------解决方案--------------------
FBizdate在内查询中是时间格式,测试排序,数据库可以正常的按照时间排序,所以是正常的。
但是同时在内查询的select中你把FBizdate转换成了字符串,数据库当然就按照字符串来排序了。
------解决方案--------------------
你可以让日期格式化成两位再排序
------解决方案--------------------
ORDER BY MONDAY
改成
order by to_date(MONDAY,'mm-dd')