【问题标题】:How to get entries from a SQL table for past 22 weekdays/ 8 Weekends如何从 SQL 表中获取过去 22 个工作日/8 个周末的条目
【发布时间】:2022-06-10 19:59:19
【问题描述】:

我想从表中获取过去 22 个工作日或 8 个周末的条目 我有一个 created_on 列,用作查找条目创建时间的信息来源

我用它来提取 dow 并按工作日和周末过滤输出

但我不知道如何获取正好 22 个工作日的数据?

一个示例查询真的很有帮助

【问题讨论】:

  • 我删除了冲突的 DBMS 标签。请只为您真正使用的数据库产品添加一个标签。
  • 你能告诉我你想达到什么目标吗?您在寻找 DAYOFWEEK() 函数吗?

标签: sql


【解决方案1】:

您可以使用BETWEEN

例子,

WHERE tablename.created_on BETWEEN "01.06.2022" AND "15.06.2022"

【讨论】:

    【解决方案2】:

    您可以使用'DY' 日期掩码来过滤日期,并使用CONNECT BY LEVEL 来获取日期计数

      SELECT t.something, t.created_on
        FROM your_table t
       WHERE 22 = (SELECT COUNT(1)
                     FROM DUAL
                    WHERE TO_CHAR(TRUNC(t.created_on ,'DD') + LEVEL - 1, 'DY') NOT IN ('SAT', 'SUN')
                  CONNECT BY LEVEL <= SYSDATE - TRUNC(t.created_on,'DD') + 1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      • 2018-07-27
      • 2019-09-07
      相关资源
      最近更新 更多