【问题标题】:Incrementing Date - SQL(Snowflake)递增日期 - SQL(雪花)
【发布时间】:2021-08-04 10:48:19
【问题描述】:

我想通过在单个查询中拉入 Snowflake 中的当前日期来增加/减少年、日、月? 例如

假设当前系统日期 - 04082021 我想将其设为 05092022。我尝试了 dateadd 函数,但我想它只允许一次增加一个部分,即年或月或日。

有可能吗?如果不是,还有其他选择吗?

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

    如果要使用DATEADD函数,代码如下:

    SELECT DATEADD(YEAR,+1,DATEADD(MONTH,+1,DATEADD(DAY,+1,CURRENT_DATE())));
    

    2021-08-04返回2022-09-05

    如果你想保持你的格式,请使用以下代码

    SELECT TO_CHAR(DATEADD(YEAR,+1,DATEADD(MONTH,+1,DATEADD(DAY,+1,CURRENT_DATE()))),'DDMMYYYY');
    

    【讨论】:

    • 它确实添加了日期,但我想保留格式
    • 如果你想保持你的格式,请使用下面的代码 SELECT TO_CHAR(DATEADD(YEAR,+1,DATEADD(MONTH,+1,DATEADD(DAY,+1,CURRENT_DATE()))) ,'DDMMYYYY');
    • 请使用格式代码以获得更好的可见性
    【解决方案2】:

    我会在你的部分做算术:

    select current_date + interval '1 year' + interval '1 month' + interval '1 day'
    

    你也可以使用:

    select current_date + interval '1 year, 1 month, 1 day'
    

    【讨论】:

    • 它可以很好地增加价值,但有两个问题。 1. 格式必须没有连字符,这是单向的,我可以增加值或减少值,但不能两者兼而有之。
    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2021-12-27
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多