【问题标题】:generate_series for Min and Max dates最小和最大日期的 generate_series
【发布时间】:2013-11-29 08:33:56
【问题描述】:

这是我想在 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 行:select * from generate_series ((select EXTRACT (YEAR FROM MI... ^ 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

【问题讨论】:

    标签: postgresql greenplum


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 2012-09-05
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多