最小和最大日期的generate_series

时间:2013-11-15 20:09:24

标签: 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))

抛出错误

ERROR:  function generate_series(double precision, double precision) does not exist

第1行:从generate_series中选择*(选择EXTRACT(年份来自MI ...)                       ^ 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

1 个答案:

答案 0 :(得分:3)

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

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
)

<强> sql fiddle demo