首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >T-SQL -哪里条款查找进入哪里日期是下周,但也在本季度

T-SQL -哪里条款查找进入哪里日期是下周,但也在本季度
EN

Stack Overflow用户
提问于 2018-11-08 20:15:38
回答 2查看 65关注 0票数 1

我有一个简单的表结构,其中包含分配给资源的任务:

| TASK | START_DATE | RESOURCE | CLOSED |

| T1 | 2018-10-10 00:00:00.000 | Bill | 0 |

| T2 | 2018-11-12 00:00:00.000 | Bob | 0 |

| T3 | 2018-11-17 00:00:00.000 | Ben | 0 |

我有一份报告,目的是显示下周需要完成的任务,我目前的过滤器是:

WHERE CLOSED = 0 AND ((DATEPART(wk,Tasks.Start_Date) -1) = DATEPART(wk,getutcdate()) and DATEPART(YY,Tasks.Start_Date) = DATEPART(yy,getutcdate()))

当任务有下个星期的开始日期时,过滤器完美地工作,但是我也有每季度运行的任务,这些任务被这个过滤器排除在外。

有没有一种方法可以构建一个过滤器,其中包括本季度的所有任务以及下周的任务?例如,尽管在过去有一个开始日期(2018-10: 00:00:00.000),但标识为T1的任务仍然处于打开状态,我仍然需要它在我的报告中显示出来。

谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2018-11-08 20:22:11

假设您使用的是MSSQL,您可以使用下面的简化条件来提供更高的可读性。

代码语言:javascript
运行
复制
WHERE CLOSED = 0 
  AND Tasks.Start_Date < DATEADD(WEEK,1,GETDATE())

编辑:如果需要将任务从下周开始,只在本季度开始,因为上面的where子句带来了所有已经启动并具有CLOSED=0的任务,请在下面使用:

代码语言:javascript
运行
复制
WHERE CLOSED = 0 
  AND Tasks.Start_Date < DATEADD(WEEK,1,GETDATE())
  AND YEAR(Tasks.Start_Date) = YEAR(GETDATE())
  AND DATEPART(QUARTER, Tasks.Start_Date)=DATEPART(QUARTER, GETDATE())
票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53215473

复制
相关文章

相似问题

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