表中有一个字段date为char(10),它是一个日期,我想用max求它的最大值,这列需要转换成日期型吗?
感觉不转换也没发现不对的地方。
如果要转换,那么要怎么写这个sql??

解决方案 »

  1.   

    select max(cast([date] as datetime)) from tb
    不转换会按字符串大小比较,可能会出错
      

  2.   

    不需要转化,直接select max(日期) from 表明  where 条件
      

  3.   

    select TOP 1 * from TableName
    order by dateFiledName desc
    字符型的日期可以直接比较大小,也可以直接排序
      

  4.   

    select max(cast([date] as datetime)) from tb我觉得应该转化后再取最大值
      

  5.   

    select max(cast([date] as datetime)) from tb   日期在数据库的格式是2011-12-17 00:00:00 单独字符串比较可能会出错的  
      

  6.   

    把字段改成为char(8),显示格式为yyyyMMdd.或者替换一下"-"后再处理.
      

  7.   

    char(10)转为datetime
    然后
    select max(date) from ...即可,
    本来字段就是表示的时间,为什么不转呢?
    毕竟以后你还要针对这个字段做日期判断,比较,及日期运算等操作的。