select datediff(dd,'1983-04-26',getdate())select datediff(mm,'1983-04-26',getdate())/*----------- 
9579(所影响的行数为 1 行)            
----------- 
315(所影响的行数为 1 行)*/

解决方案 »

  1.   

    没看出有什么问题~
    datediff()是比较两个指定时间的间隔的;
    select datediff(dd,'1983-04-26',getdate())是83年与系统获得当前时间的比较,单位是天;
    select datediff(mm,'1983-04-26',getdate())是83年与系统获得当前时间的比较,单位是月;时分秒都应该被忽略掉了
      

  2.   

    我发觉把后面的getdate()改成具体的日期,答案就对了。就是用getdate()时,出现这样的答案。
    而且答案还是固定的,但是也跟正确值差得太远了吧。
      

  3.   

    千年虫其实就是“千年重”,重复的“重”。
    具体定义看,百度的这个:
    http://baike.baidu.com/view/9349.htm
      

  4.   

    --我都写成这样了 还是你那个结果  
    select datediff(day,convert(varchar(10),'1983-04-26',120),convert(varchar(10),getdate(),120))
      

  5.   

    select datediff(day,
    convert(varchar(10),'1983-04-26',120),
    convert(varchar(10),getdate(),120))
      

  6.   


    你把win2000和sql2000的补丁都打到SP4版本就可以解决了
      

  7.   

    这样 select datediff(dd,'1983-04-26','2009-07-17')    select datediff(mm,'1983-04-26','2009-07-17')
    答案是: 9579  315
    如果是这样:
    select datediff(dd,'2009-07-26','2009-07-17')select datediff(mm,'2009-04-26','2009-07-17')答案是:-9  3.
    楼主是不是想要得到天与天的差值和月与月的差值?
      

  8.   

    原来是这么理解的,但是当年份不同时,这个函数就不能给出天与天和月与月的差值。
    ==========照給!!1年=12月
    select datediff(month, '2008-7-17','2009-7-1')/*
    12
    */
      

  9.   

    不会。建议楼主再好好学习datediff这个函数。楼主是没有搞明白datediff这个函数是干什么用的。自已在那里想当然。呵呵。
      

  10.   

    select datediff(dd,'2008-12-31','2009-01-01')
    --相差天数
    select datediff(yy,'2008-12-31','2009-01-01')
    --相差月  忽略天
    select datediff(mm,'2008-12-31','2009-01-01')
    --相差年 忽略月 天
    --结果都是1
      

  11.   

    我开始的理解是这样的:
    datediff(xx,'y1-m1-d1','y2-m2-d2')
    如果xx是dd的话,就只比较d1和d2的差值;
    如果xx是mm的话,就只比较m1和m2的差值;
    如果xx是yy的话,就只比较y1和y2的差值;
    现在想来理解确实错了。
      

  12.   


    DECLARE @SDATE DATETIME,@EDATE DATETIME
    SELECT @SDATE='2009-1-9',@EDATE='2009-6-7'
    SELECT @SDATE '起始时间',@EDATE '结束时间',CAST(CASE WHEN DAY(@EDATE)>=DAY(@SDATE)
    THEN DATEDIFF(MONTH,@SDATE,@EDATE)
    ELSE DATEDIFF(MONTH,@SDATE,@EDATE)-1
    END AS VARCHAR(20))+'个月'
    +CAST(DATEDIFF(DAY,DATEADD(MONTH,CASE WHEN DAY(@EDATE)>=DAY(@SDATE)
    THEN DATEDIFF(MONTH,@SDATE,@EDATE)
    ELSE DATEDIFF(MONTH,@SDATE,@EDATE)-1
    END,@SDATE),@EDATE) AS VARCHAR(20))+'天' '相隔时间'/*
    起始时间 结束时间 相隔时间
    2009-01-09 00:00:00.000 2009-06-07 00:00:00.000 4个月29天
    */