如何在Vertica中添加一天
How to add a day in Vertica
在 sql 世界中,我们有 "adddate()" 功能可以在给定的日期增加一定的价值。例如我可以说
select adddate('2016-2-28',2) as my_day;
输出将为“2016-03-01”
在 Vertica 世界中,我们没有 adddate() 函数。我们实际上有 ADD_MONTHS 但没有 ADD_DAYS。
所以我的问题是我们如何在 Vertica 中添加一天
Vertica 足够聪明,可以理解以下内容:
SQL> select '2016-02-28'::date + 2 ;
我想添加一些额外的方法。如果您需要同时支持时间戳和日期,这些都很好。此外,我在其他 DBMS 中看到了对 INTERVAL 的更多支持,因此如果您需要跨 DBMS 支持,您可能需要考虑 INTERVAL。注意:如果您需要将结果设为日期数据类型,则可能需要转换回日期。
使用TIMESTAMPADD函数
SELECT TIMESTAMPADD('day', 1, '2020-02-28');
(如果您需要返回日期)
SELECT TIMESTAMPADD('day', 1, '2020-02-28')::date;
使用 INTERVAL
SELECT '2016-02-28'::date + INTERVAL '1 day';
(如果您需要返回日期)
SELECT ('2016-02-28'::date + INTERVAL '1 day')::date;
在 sql 世界中,我们有 "adddate()" 功能可以在给定的日期增加一定的价值。例如我可以说
select adddate('2016-2-28',2) as my_day;
输出将为“2016-03-01”
在 Vertica 世界中,我们没有 adddate() 函数。我们实际上有 ADD_MONTHS 但没有 ADD_DAYS。
所以我的问题是我们如何在 Vertica 中添加一天
Vertica 足够聪明,可以理解以下内容:
SQL> select '2016-02-28'::date + 2 ;
我想添加一些额外的方法。如果您需要同时支持时间戳和日期,这些都很好。此外,我在其他 DBMS 中看到了对 INTERVAL 的更多支持,因此如果您需要跨 DBMS 支持,您可能需要考虑 INTERVAL。注意:如果您需要将结果设为日期数据类型,则可能需要转换回日期。
使用TIMESTAMPADD函数
SELECT TIMESTAMPADD('day', 1, '2020-02-28');
(如果您需要返回日期)
SELECT TIMESTAMPADD('day', 1, '2020-02-28')::date;
使用 INTERVAL
SELECT '2016-02-28'::date + INTERVAL '1 day';
(如果您需要返回日期)
SELECT ('2016-02-28'::date + INTERVAL '1 day')::date;