我正在尝试向 AWS Athena 表中的日期列添加天数,其中天数由另一列确定。
我可以在该列中添加固定天数:
select (current_date + interval '1' day) as Incremented_Date
但是当我尝试以下操作时
select (current_date + interval D_Plus day) as Incremented_Date
from
(select * from (VALUES(1),
(2),
(3),
(4)
) as t("D_Plus"))
我收到错误
输入“D_Plus”不匹配。预期:'+'、'-'、. *
我希望得到以下结果:
在文档日期、时间戳和间隔运算符中有一节
指定间隔的规则
日间间隔文字是表示单个间隔的字符串 值。
该值是字面意思,因此您尝试执行的操作将不起作用。
几个选项
您可以将列 D_Plus 添加为乘数:
select (current_date + D_Plus * interval '1' day) as Incremented_Date
from (
select *
from (
VALUES(1),
(2),
(3),
(4)
) as t("D_Plus")
)
或者您可以使用 DATE_ADD 函数:
select DATE_ADD('day', D_Plus, current_date) as Incremented_Date
from (
select *
from (
VALUES(1),
(2),
(3),
(4)
) as t("D_Plus")
)