首页 > 解决方案 > 计算天数返回错误计数

问题描述

    WITH mycte AS
(
  SELECT CAST(Convert(date,getdate()) AS DATETIME) DateValue
  UNION ALL
  SELECT  DateValue + 1
  FROM    mycte   
  WHERE   DateValue  <= ('02-28-2021)
)

--ISSUE HERE
(SELECT  SUM(COUNT(*)) OVER() AS Count
FROM    mycte
WHERE DatePart("w",DateValue) > 1 AND DatePart("w",DateValue) < 7
group by DatePart("w",DateValue))
As WK

例如,我在计算今天(2021 年 2 月 24 日)和 2 月底之间的周六、周日和工作日数时也是如此:

在此处输入图像描述

但是今天计算:星期三、星期四和星期五应该返回 3 而不是 4 每个图像的结果。我不知道为什么在今天和 2 月 28 日之间没有计数时它会返回周一的计数(何时selecting DatePart("w",DateValue)) for > 1 & < 7 or between 2 & 6

标签: sqlsql-server

解决方案


推荐阅读