现在我用order by date desc进行倒叙,但是出现问题了,我日期格式是yyyy-m还是yyyy-mm
2012-1 2012-2  ---2012-10,问题来了 一倒叙2012-10就到1月份前面了,
就变成2012-9,2012-8 ----2012-2,2012-10,2012-1, 如何进行更改,貌似数据库里是按照单字符的月份写的。
如何用sql语句写

解决方案 »

  1.   

    Convert(varchar(10),getdate(),23)
    Convert(varchar(10),getdate(),113)
    Convert(varchar(10),getdate(),112)
      

  2.   

    如果分组还可以把日期转换成float进行5分钟,10分钟半个小时分组select Convert(float,getdate())
    select Convert(float,getdate())
    select Convert(float,getdate()) 
      

  3.   


    比如说我是select * from IP order by xxxx desc 这个convert加哪里呢
      

  4.   

    你日期字段是nvchar还是date类型呀,date字段可以排序呀,nvchar转了再排序
      

  5.   

    是varchar,我自己解决了
    order by cast(frmSocialInsurance.datdate + '-01' as datetime)  desc
      

  6.   

    还有个方法改数据库的格式varchar-->datetime,这太麻烦还需要导出数据再导入
      

  7.   


    cast(time as datetime)
      

  8.   

    不行你取时间字段的 YEAR() MONTH 根据这2个字段排序,或者利用时间格式的转化
    cast(time as datetime)