gpt4 book ai didi

amazon-redshift - Amazon Redshift中的generate_series函数

转载 作者:行者123 更新时间:2023-12-04 09:35:31 30 4
gpt4 key购买 nike

我尝试了以下方法:

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('2011-12-31'::timestamp, '2012-12-31'::timestamp, '1 day');

它产生了错误。

ERROR:  function generate_series(timestamp without time zone, timestamp without time zone, "unknown") does not exist
HINT: No function matches the given name and argument types. You may need to add explicit type casts.


我在Redshift 1.0.757上使用PostgreSQL 8.0.2。
知道为什么会发生吗?

更新:

generate_series现在正在与Redshift一起使用。
SELECT CURRENT_DATE::TIMESTAMP  - (i * interval '1 day') as date_datetime 
FROM generate_series(1,31) i
ORDER BY 1

这将产生最近30天的日期

最佳答案

Postgres 8.4中添加了支持日期和时间戳的generate_series()版本。

由于Redshift基于Postgres 8.0,因此您需要使用其他方式:

select timestamp '2011-12-31 00:00:00' + (i * interval '1 day')
from generate_series(1, (date '2012-12-31' - date '2011-12-31')) i;

如果“仅”需要日期,则可以缩写为:
select date '2011-12-31' + i
from generate_series(1, (date '2012-12-31' - date '2011-12-31')) i;

关于amazon-redshift - Amazon Redshift中的generate_series函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22554398/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com