递增日期 - SQL(雪花)

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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. 格式必须没有连字符,这是单向的,我可以增加值或减少值,但不能两者兼而有之。

以上是关于递增日期 - SQL(雪花)的主要内容,如果未能解决你的问题,请参考以下文章

将日期解析为雪花中的不同格式

SQL - 雪花减号运算符

如何在雪花中将时间戳转换为日期

默认日期雪花:无效标识符“日期”

如何在雪花日期数据类型字段中插入儒略日期

雪花创建日期列表