在postgres中,当我在日期中加上天数间隔时,便会得到时间戳记。因此,我想将其回溯到某个日期。 我有一个如此时间戳的generate_series,并想将它们转换为日期:
select *
from cast(generate_series(current_date-interval'7 days',current_date,'1 day')as date)gs(date);
当我这样做时,我得到:
ERROR: set-valued function called in context that cannot accept a set
当我不使用日期,但使用整数时,也没有错误:
select * from cast(generate_series(1,15,2)as int);
以下内容也没有错误:
select cast(generate_series(current_date-interval'7 days',current_date,'1 day')as date)gs(date);
我还有另一个问题:错误消息正在谈论集合。老实说,我只知道表格。
答案 0 :(得分:1)
generate_series()
返回与表相似的行set。显然,您不能将集合转换为单个数据类型。您的演员表类似于select * from cast(some_table as date)
您需要转换该函数返回的值:
select gs.date::date as "date"
from generate_series(current_date - interval '7 days', current_date, '1 day') gs(date)