首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将周末排除在查询之外

将周末排除在查询之外
EN

Stack Overflow用户
提问于 2017-04-10 13:27:27
回答 3查看 288关注 0票数 2

我有一个很好的查询。该查询基本上从当前日期开始检索6-8天之间的数据。在测量数据的年龄时,我想不包括周末。

如果一个记录是星期五登记的,那么周一早上就会显示它已经有4天的历史了,但它实际上只有2天的历史,因为Satuday和Sunday不应该算在内。

我试过这个,但似乎不起作用:

代码语言:javascript
运行
复制
Select id, name, CreatedDate
from table
where 
CreatedDate <= DATEADD(day, -6, GETDATE()) AND CreatedDate >= DATEADD(day, -8, GETDATE()) -- here I get data between 6-8 days old
 AND ((DATEPART(dw, CreatedDate) + @@DATEFIRST) % 7) NOT IN (0, 1) -- Here im trying to exclude weekends

我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-10 14:34:07

您可以查看日历并尝试此查询。

代码语言:javascript
运行
复制
// Logic is very simple. 
// See calendar and try.
// If today is Monday, then Prev8workingdays will include 
// 8 working days + 2 weekends = 12 days. 
// Then result will be dateadd(day,-12, getdate()) = 12 days before today.
// Same logic for other days week
DECLARE @Prev8workingdays date = CASE
    WHEN datepart(dw, getdate()) IN (2,3,4) THEN dateadd(day,-12, getdate()) 
    WHEN datepart(dw, getdate()) IN (1) THEN dateadd(day,-11, getdate()) 
    ELSE dateadd(day,-10, getdate())
    END
DECLARE @Pre6WorkingDay date = CASE
        WHEN datepart(dw, getdate()) IN (2) THEN dateadd(day,-10, getdate()) 
        WHEN datepart(dw, getdate()) IN (1) THEN dateadd(day,-9, getdate()) 
        ELSE dateadd(day,-8, getdate())
    END

SELECT sd.* FROM
@SampleDate sd
WHERE sd.CreatedDate >= @Prev8workingdays AND sd.CreatedDate <= @Pre6WorkingDay

参考链路DATEADD

票数 2
EN

Stack Overflow用户

发布于 2017-04-10 13:32:19

你可以试试:

代码语言:javascript
运行
复制
     WHERE DATEPART(dw, date_created) NOT IN (1, 7);
票数 2
EN

Stack Overflow用户

发布于 2017-04-10 13:54:45

试试这个:

代码语言:javascript
运行
复制
Select id, name, CreatedDate
from table
where CreatedDate < GETDATE()-6 and CreatedDate > GETDATE()-8 and
((DATEPART(dw, CreatedDate) + @@DATEFIRST) % 7) NOT IN (0, 1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43324492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档