最小和最大日期的generate_series

Nem*_*emo 3 postgresql greenplum

这是我想在 Greenplum 数据库(如 postgresql 8.2.15)中完成的非常基本的查询。

表 t 中的字段 create_date 是不带时区的时间戳。谁能指出我正确的查询来完成此任务?谢谢。

select * from generate_series ((select EXTRACT (YEAR FROM MIN(t1.create_date)) from t1),(select EXTRACT (YEAR FROM MAX(t1.create_date)) from t1))
Run Code Online (Sandbox Code Playgroud)

它的投掷错误

ERROR:  function generate_series(double precision, double precision) does not exist
Run Code Online (Sandbox Code Playgroud)

第 1 行: select * fromgenerate_series ((select EXTRACT (YEAR FROM MI... ^ 提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。

Rom*_*kar 5

您可以将参数显式转换为整数:

select *
from generate_series (
    (select EXTRACT (YEAR FROM MIN(t1.create_date)) from t1)::int,
    (select EXTRACT (YEAR FROM MAX(t1.create_date)) from t1)::int
)
Run Code Online (Sandbox Code Playgroud)

sql fiddle demo