我需要获取 sql 中日期之间的周末数作为函数。我已经尝试过,但在逻辑中的某个地方卡住了。

CREATE FUNCTION fnc_NumberOfWeekEnds(@dFrom DATETIME, @dTo   DATETIME)

RETURNS INT AS

BEGIN

   Declare @weekends int

   Set @weekends = 0

   While @dFrom <= @dTo Begin

      If ((datepart(dw, @dFrom) = 1))

                  Set @weekends = @weekends + 1

                  Set @dFrom = DateAdd(d, 1, @dFrom)

   End

   Return (@weekends)

END

最佳答案

尝试用这个替换 if 语句:

If ((datepart(dw, @dFrom) = 1) OR (datepart(dw, @dFrom) = 7))

您还应该检查周末以获得结果。

关于sql-server - 获取 SQL 中两个日期之间的周末数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15432675/

10-11 01:56