首页 文章

仅显示周一至周日整周的数据顺序,并隐藏非完整周数据

提问于
浏览
0

对不起,如果我在这里拍摄新手问题 .

我想创建一份每周报告,但对于本周报告,我想要从周一到周日的完整数据

条件:

  • 仅限过去4周

  • 显示整周(周一至周日)

  • 如果结果不是整周,则隐藏结果

如果我使用getdate -14,如果我在周三访问数据,他们将从上周2周前开始计算,而不是上周一 . 同时,我希望报告只显示整周 .

任何人都可以在SQL中分享如何做到这一点吗?

这里我提供样本数据:

Column name = DATE -- Column name: TOTAL_PERSON
    - Fri, 1 Jun 2018 -- 10
    - Sat, 2 Jun 2018 -- 4
    - Sun, 3 Jun 2018 -- 12
    - Mon, 4 Jun 2018 -- 15
    - Tue, 5 Jun 2018 -- 10
    - Wed, 6 Jun 2018 -- 3
    - Thu, 7 Jun 2018 -- 1
    - Fri, 8 Jun 2018 -- 13
    - Sat, 9 Jun 2018 -- 9
    - Sun, 10 Jun 2018 -- 23
    - Mon, 11 Jun 2018 -- 5
    - Tue, 12 Jun 2018 -- 3
    - Wed, 13 Jun 2018 -- 1
    - Thu, 14 Jun 2018 -- (TODAY)

在这种情况下,如果我在2018年6月6日星期四访问,我想从2018年6月4日星期一到2018年6月10日星期日获得 TOTAL PERSON 数据,而不显示其余数据,因为本周未满 .

任何人都可以帮我怎么做?

非常感谢!

2 回答

  • 0

    我想你想要:

    where datediff(week, date, getdate()) <= 2
    

    这计算两个日期之间的周边界数,因此它返回整周 .

  • 0

    对于MySQL,您可以使用这样的选择:

    SELECT * FROM `myDB` WHERE `Date` 
    BETWEEN DATE_SUB(NOW()-INTERVAL DATE_FORMAT(CURRENT_DATE, '%w') DAY, INTERVAL 28 DAY) 
    AND NOW()- INTERVAL DATE_FORMAT(CURRENT_DATE, '%w') DAY
    

    这使用了将本周当前日转换为数字的功能,并将其减去最后一个星期日 . 从那里,我们选择了28天的间隔 .

    (只有14天的测试和非常有限的测试数据集,但应该工作)

相关问题