文档章节

Postgresql 使用序列号生成函数 生成连续日期

chenlei65368
 chenlei65368
发布于 2013/04/02 09:10
字数 406
阅读 521
收藏 9
项目中交易记录进行统计查询时,需要对一段时间连续日期内交易数据进行统计,
因为指定时间段内某些日期可能没有交易数据,所以需要补齐。

使用 postgresql序列生成函数,生成连续日期,再进行查询。

如下:

序列号生成函数

函数 参数类型 返回类型 描述
generate_series(start,stop) int或bigint setof int或setof bigint(与参数类型相同)) 生成一个数值序列,从start到stop,步长为1 。
generate_series(start,stop,step) int或bigint setof int或setof bigint(与参数类型相同)) 生成一个数值序列,从start到stop,步长为step。
generate_series(start,stop,step) timestamp或timestamp with time zone setof timestamp或setof timestamp with time zone(与参数类型相同) 生成一个数值序列,从start到stop,步长为step。
 
网上有人的用法(如下),先计算日期相差天数,查询中进行日期累加,我觉得反而变复杂了
select to_char(cast('20081001' as date) + s.a,'yyyyMMdd') as 统计日期  from generate_series(0, cast('20081031' as date)-cast('20081001' as date),1) as s(a) 

 
postgresql中给的例子是:
SELECT * FROM generate_series('2008-03-01 00:00'::timestamp, '2008-03-04 12:00', '10 hours'); 
generate_series --------------------- 
2008-03-01 00:00:00 
2008-03-01 10:00:00 
2008-03-01 20:00:00 
2008-03-02 06:00:00 
2008-03-02 16:00:00 
2008-03-03 02:00:00 
2008-03-03 12:00:00 
2008-03-03 22:00:00 
2008-03-04 08:00:00 
(9 rows)  

稍作修改如下:
SELECT to_char(a,'yyyyMMdd') FROM generate_series('2008-03-01'::date,'2008-03-04', '1 days') as a; 
"20080301"
"20080302"
"20080303"
"20080304"
 满足现在使用场景。

© 著作权归作者所有

chenlei65368
粉丝 4
博文 4
码字总数 621
作品 0
昌平
程序员
私信 提问
[笔记]将系统的数据库从MySQL 5.5迁移到PostgreSQL 9.1

环境 Windows Server 2003 x64 简体中文, MySQL 5.5 (UTF8编码), PostgreSQL 9.1.4-1 (UTF8编码) Spring 3.0.7, Struts 2.3.4, Hibernate 3.5.5 从MySQL迁移到PostgreSQL ------------------......

leeoo
2012/07/22
0
3
PostgreSQL学习手册(五) 函数和操作符

一、逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。 二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表: 操作符 描述 < 小于 > 大...

长平狐
2012/08/27
1K
0
PostgreSQL最常见问题

PostgreSQL最常见问题 常见问题 1.1)PostgreSQL 是什么?该怎么发音? 1.2)PostgreSQL 的版权是什么? 1.3)PostgreSQL 可以运行在哪些操作系统平台上? 1.4)我从哪里能得到 PostgreSQL? 1....

长平狐
2013/01/06
1K
0
PostgreSQL【函数和操作符】

逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。 比较操作符: 下面是PostgreSQL中提供的比较操作符列表: 操作符 描述 < 小于 > 大于 <= 小...

SibylY
2015/11/20
0
0
PostgreSQL学习手册(五) 函数和操作符

一、逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。 二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表: 操作符 描述 < 小于 > 大...

长平狐
2012/09/06
79
0

没有更多内容

加载失败,请刷新页面

加载更多

tornadofx动画演示分钱问题,多种方法

import javafx.animation.AnimationTimerimport javafx.collections.FXCollectionsimport javafx.scene.paint.Colorimport javafx.scene.shape.Rectangleimport javafx.util.Duratio......

oschina4cyy
20分钟前
0
0
Bootstrap(四)列表与代码

列表 无序列表 <ul> <li>...</li></ul> 有序列表 <ol> <li>...</li></ol> 去点列表 <ul class="list-unstyled"> <li>...</li></ul> 内联列表(列表元素放置于同一行) <ul class="......

ZeroBit
24分钟前
0
0
信必优成功案例 – H3C/CMCC企业项目管理系统

项目背景 •企业项目管理(EPM)系统涵盖了(无线)需求管理、预算管理、立项管理、建设管理、后评估等一系列功能,实现了从预算到建设到项目完成评估阶段的全面覆盖。同时,通过管理流程的电...

symbiochina88
25分钟前
0
0
DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能

行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容。在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部分功能增强,点击下...

FILA6666
25分钟前
0
0
PHP 获取类 / 对象的属性字段及属性值

get_class_vars 获取类的公有属性及默认值(包含公有的静态属性),用来列举类的公有属性字段。 get_object_vars 获取对象的公有属性及属性值(不包含公有的静态属性)。 ReflectionClass 如...

big_cat
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部