日期:2014-05-19  浏览次数:20555 次

怎么得到一个月前的今天到今天的周末的天数呢?
怎么得到一个月前的今天到今天的周末的天数呢?

也就周六和周日在的天数

有这样的函数吗?

前辈知道的,可以给点提示吗?


------解决方案--------------------
ALTER 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
BEGIN
SET @i = @i + 1
END;
SET @BDate_P = @BDate_P + 1
END
RETURN(DATEDIFF(dd,@BDate,@EDate)- @i)
END
============================================================
这个函数可以得到两个日期间的工作日的天数
你自己改改吧。

------解决方案--------------------
select dateadd(month,-1,getdate()) --一个月前的今天

select dateadd(day,7-datepart(weekday,getdate()),getdate()) --本周末的日子

select datediff(day,dateadd(month,-1,getdate()),dateadd(day,7-datepart(weekday,getdate()),getdate())) --相差的天数