添加从表列确定的日期间隔

问题描述 投票:0回答:1

我正在尝试向 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”不匹配。预期:'+'、'-'、. *

我希望得到以下结果:

results

date amazon-athena intervals
1个回答
0
投票

在文档日期、时间戳和间隔运算符中有一节

指定间隔的规则

日间间隔文字是表示单个间隔的字符串 值。

该值是字面意思,因此您尝试执行的操作将不起作用。

几个选项

您可以将列 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")
    )
© www.soinside.com 2019 - 2024. All rights reserved.