gpt4 book ai didi

postgresql - 在 generate_series 上转换给出 : ERROR: set-valued function called in context that cannot accept a set

转载 作者:行者123 更新时间:2023-11-29 13:11:23 24 4
gpt4 key购买 nike

在 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);

我还有一个问题:错误信息是在谈论集合。老实说,我只知道表格。

最佳答案

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)

关于postgresql - 在 generate_series 上转换给出 : ERROR: set-valued function called in context that cannot accept a set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54196486/

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