当前位置:   article > 正文

Pgsql之查询一段时间内的所有日期_with as pgsql 统计 日天

with as pgsql 统计 日天

前几天干活儿的时候,项目中有这么个需求,需要用pgsql查询两个日期间的所有日期,包括年月日,下面贴代码:

  1. select date(t) as day
  2. from
  3. generate_series('2020-10-27'::date,'2020-11-03', '1 days') as t;

下面是执行效果,跨年跨月的情况也是没问题的:

下面咱们说下PostgreSql中generate_series函数的用法:

用处:他可以按照不同的规则来生成填充数据

语法:

函数参数类型返回类型描述
generate_series(start,stop)int或bigintsetof int或setof bigint(与参数类型相同)生成一系列值,从start到stop ,步长为 1
generate_series(start,stop, step)int或bigintsetof int或setof bigint(与参数类型相同)功能生成一系列值,start到stop ,步长为step

 也可以用递归来做,其中recursive函数配合with查询来实现遍历,效率会更高一些:

  1. with recursive t(n) as (
  2. select date('2020-10-27')
  3. union all
  4. select n+1 from t where n < date('2020-11-03')
  5. )select n as day from t;

执行效果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/495607?site
推荐阅读
相关标签
  

闽ICP备14008679号