开发者社区> 问答> 正文

如何选择过去7天以及过去一年中的对应星期

我该如何选择

过去一周 前一年的对应天数 这是仪表盘所必需的,我想显示一个图表,其中包含过去7天的结果。如果我们的呼叫中心在一定时间内处理了98%的电话,则显示为绿色;如果超过98%,则显示为红色。作为参考,我想在下面创建一个图表,其中包含前一年的相应7天。这具有挑战性,因为工作日确实会影响工作量。这意味着我无法将星期二与星期日或星期一进行比较。

例如,今天是2019年12月21日星期六,我想报告以下时间跨度:

2019-12-13 00:00:00-> 2019-12-20 23:59:59 和 2018-12-14 00:00:00- > 2018-12-21 23:59:59

我编写了以下代码(在select语句中使用):

case when cs.ReachedAt between (getdate() - 7) and getdate() then 1 else 0 end as Is_PastWeek

case when cs.ReachedAt between (convert(datetime, convert(varchar(50), convert(date, dateadd(d, -1, dateadd(wk, -52, getdate())))) + ' 23:59:59')) and (convert(datetime, convert(varchar(50), convert(date, dateadd(d, -8, dateadd(wk, -52, getdate())))) + ' 00:00:00')) then 1 else 0 end as Is_SameWeekLastYear

它有效,但不是完美的。我只是选择与52周前同一周的相应工作日。这意味着我有时最终会选择匹配的工作日,而不是最近的工作日。我该如何做得更好?

展开
收起
心有灵_夕 2019-12-22 13:59:28 901 0
1 条回答
写回答
取消 提交回答
  • 该表达式datepart(week, getdate())将为您提供日历周。有了这个,您可以走得更远。

    2019-12-22 14:00:01
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载