首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得一个月的行政周的数据?

如何获得一个月的行政周的数据?
EN

Stack Overflow用户
提问于 2022-08-03 09:48:10
回答 1查看 59关注 0票数 2

我想要做的是获取每个“管理”周(星期一到星期日)的数据,也就是说,如果一个月从星期三开始,第二个星期当我启动查询时,我想要上个星期的星期三、星期四、星期五、星期六、星期日的数据。这将获得第一周的数据,以及本月每周的数据。

我提出了以下查询:

代码语言:javascript
复制
with connection.cursor() as cursor:
    sql = 'SELECT COUNT(*) ' \
          'FROM panneau ' \
          'WHERE year(datecreation) = year(now()) ' \
          'AND month(datecreation) = month(now()) ' \
          'AND datecreation [I don't know what to put here] '
    cursor.execute(sql)
    test = cursor.fetchall()
    print(test)

但我不知道最后一行是什么。

最后,我应该有4到5个变量与每个“管理周”的数据,这将考虑到什么时候开始的第一周,什么时候的月份最后一周结束。

编辑:例如2022年7月的一个月,

  • 第一周=星期五第一至第三星期日。
  • 第二周=第四至第十周。
  • 第3周=第11至17周
  • 第4周=18 24
  • 第5周=25至31

请帮忙,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-03 17:00:50

要获得上一个管理周,可以检查前一周日期范围内是否存在潜在日期,由generate_series生成的当前日期时间的generate_series值抵消

代码语言:javascript
复制
select p.datecreation from panneau p
where date(p.datecreation) in 
  (select date(p1.dt) from 
      (select now() - (extract(dow from now())::text || ' days')::interval - ((7-v)::text|| ' days')::interval dt 
       from generate_series(1,7) v) p1 
   where extract(month from p1.dt) = extract(month from now() - (extract(dow from now())::text || ' days')::interval))

见小提琴

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73219610

复制
相关文章

相似问题

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