PostgreSQL的字符串类型有character、character varying和text的值。在使用character类型的时候, 它有自动填充空白的潜在影响,特别是在其它数据库(MySQL,Oracle)向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 interval) |
timestamp或timestamp with time zone |
set of timestamp或set oftimestamp with time zone(和参数类型相同) |
产生一系列值,从start到stop,步长为step |
当step为正时,如果start大于stop则返回零行。相反,当step为负时,如果start小于stop则返回零行。对于NULL输入也会返回零行。step为零是一个错误。下面是一些例子:
SELECT * FROM generate_series(2,4);
generate_series
-----------------
2
3
4
(3 rows)
SELECT * FROM generate_series(5,1,-2);
generate_series
-----------------
5
3
1
(3 rows)
SELECT * FROM generate_series(4,3);
generate_series
-----------------
(0 rows)
SELECT current_date + s.a AS dates FROM generate_series(0,14,7) AS s(a);
dates
------------
2004-02-05
2004-02-12
2004-02-19
(3 rows)
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)