谢谢!!

解决方案 »

  1.   

    用datediff()函数的时候要确保2个日期是同样的格式,这样就没有问题
    select datediff(day,convert(varchar,'2006-06-07 17:46:17',120),convert(varchar,getdate(),120)) as days--结果
    days        
    ----------- 
    365(所影响的行数为 1 行)
      

  2.   

    DATEDIFF() 好像是求两个日期之间的天数,我是说两个日期之间的工作日,除去周六、周日、法定节假日。如果没有,求高手帮我写一个!先谢了。
    本人穷,只有10分相赠!
      

  3.   

    DATEDIFF() 好像是求两个日期之间的天数,我是说两个日期之间的工作日,除去周六、周日、法定节假日。如果没有,求高手帮我写一个!先谢了。
    本人穷,只有10分相赠!
      

  4.   

    DATEDIFF() 好像是求两个日期之间的天数,我是说两个日期之间的工作日,除去周六、周日、法定节假日。如果没有,求高手帮我写一个!先谢了。
    本人穷,只有10分相赠!
      

  5.   

    CREATE FUNCTION fn_DateDiffWork(
    @BDate datetime,
    @EDate datetime
    )
    RETURNS INT
    AS
    BEGIN
      DECLARE @i int,@BDate_P datetime,@EDate_P datetime
      SET @i = 0
      SET @BDate_P = @BDate;
      SET @EDate_P = @EDate;
        
      WHILE DATEDIFF(dd,@BDate_P,@EDate_P) > 0      --用来算两个日期间有多少天是周末
      BEGIN
       IF (@@datefirst + DATEPART(dw,@BDate_P)) % 7 <= 1  
                        --重点是这儿,一周中的第几天加上@@datefirst再模7。
       BEGIN
        SET @i = @i + 1
       END;
       SET @BDate_P = @BDate_P + 1
      END
      RETURN(DATEDIFF(dd,@BDate,@EDate)- @i)
    END此算法的结果中不包含参数中的@EDate,如果要加上这一天的话,则在循环那段要稍加修改。