我有一个子段addtime 是varchar类型的,存储的是通过DateTime.Now.ToString()来存入的,如果我想查询2004-2005年的数据,或者是查询2005.4月份到2005.6月份的数据,我应该怎么弄?

解决方案 »

  1.   

    建议改成 DATETIME 类型,直接用<  > 或者 DATEDIFF 就可查询
    你要坚持用VARCHAR的话 累点,LEFT RIGHT 也可以
      

  2.   

    select * from table where datediff(cast(addtime as datetime),2004)<0  and datediff(cast(addtime as datetime),2005)>0
      

  3.   

    把这个字段转换为datetime型的就可以使用了
      

  4.   

    select * from center where DATEDIFF( cast(centername as datetime) , 2003-01-01,2004-01-01) >0不知道那里错了?
    select * from center where cast(centername as datetime)> 2003-01
    这样会把所有的数据都查询出来,,而不能筛选
      

  5.   

    这些好像都不行啊.
    我为什么会有这样的提示:服务器: 消息 174,级别 15,状态 1,行 1
    datediff 函数要求有 3 个参数。或服务器: 消息 1023,级别 15,状态 1,行 1
    为 datediff 指定了无效的参数 1。