我们的数据库,时间是char(10)类型的yyyy—mm格式。
而现在我用这个时间减去系统时间getdate(),得到一个天数的差额,请问如何解决。
我尝试了很多方法,可是始终不行,关键是char(10)无法转化成datetime的形式,无法用datediff进行加减,请问有什么办法实现吗。cast,convert的转化都是不成功的。

解决方案 »

  1.   

    yyyy—mm
    年月 与 年月日 加减?
      

  2.   

    SELECT datediff(day,cast('2008-08'+'-01' as datetime),getdate())
      

  3.   

    用当前时间减月份是没法得到天数的,如果用当前时间减月份的第一天,则可以参考以下方法:declare @mdate char(10);
    set @mdate='2008-12';
    select datediff(day,@mdate+'-01',getdate())----------- 
    20(所影响的行数为 1 行)
      

  4.   

    你用的什么数据库,2005直接这样写就行。。
    select datediff(day,字段名,getdate()) from tblname
      

  5.   

    1.将原来的数据拼凑成日期格式在转换处理,不过理论上第一种方式要好一些,可以直接使用datediff函数处理.
    2.将getdate()日期格式转换成YYYY-MM来处理,这个需要自己写函数来处理.
      

  6.   

    直接将数据整理好,用DATEDIFF函数来处理,很方便。