我现在要求出两个日期之间的相差几个月,尝试了测试datediff函数,我写语句
select datediff(m,2010-05-02,2010-08-03),或者写select datediff(m,2010-05,2010-08)返回值都是0,怎么回事啊?
还有我数据库里只有月份,即2010-05这个格式,可以用datediff来计算两个月份之间的差吗?

解决方案 »

  1.   

    select datediff(m,'2010-05-02','2010-08-03')
      

  2.   

    select datediff(mm,cast('2010-05-02' as datetime),cast('2010-08-03' as datetime))
      

  3.   

    select datediff(m,'2010-05-02','2010-08-03')
      

  4.   


    declare @yu varchar(10)
    set @yu = '2010-05'select datediff(mm,cast(@yu + '-01' as datetime),cast(@yu + '-08' as datetime))
      

  5.   

    时间用单引号引起来SELECT 2009-08-09
    --结果为:1992
    SELECT '2009-08-09'
    --结果为:2009-08-09
      

  6.   

    select datediff(m,'2010-05-02','2010-08-03')
      

  7.   

    既然你数据库里都是‘2010-05’的格式,那就按照4楼的方法,先统一后面加‘-01’再用函数进行计算好了。这样可以不用显示的将字符串转换为DATETIME格式。