首页 > 解决方案 > SQL - 如何从日期范围中排除星期日

问题描述

我有以下代码

SELECT AccountNum, DateStart, DateEnd
FROM TableA
WHERE DateStart > '2020-04-01'
AND DateStart => DATEADD(day,-5, DateEnd)

该代码当前抓取 DateEnd 在 DateStart 5 天内的所有记录。

我要补充的是,它将星期日排除在重要的日子之一。因此,如果星期日恰好是 DateEnd 和 DateEnd - 5 之间的日子之一,那么将 -5 更改为 -6。

标签: sqlsql-server

解决方案


星期日将是除星期五或星期六之外的所有日子的日子之一。假设您使用的是英语语言设置:

WHERE DateStart > '2020-04-01' AND
      (DateStart >= DATEADD(day, -5, DateEnd) OR
      (DATENAME(weekday, DateStart) NOT IN ('Friday', 'Saturday') AND
       DateStart >= DATEADD(day, -6, DateEnd) 
      )

推荐阅读