我想在一个日期添加1个日历月,忽略该月的天数.即add_month('2015-02-23')退货2015-03-23和add_month('2015-05-23')退货2015-06-23
好像我可以INTERVAL '1 month'用来做这个,但我很惊讶地发现每当我这样做时,它会增加30天的输入,即功能相同INTERVAL '30 days'.这也会发生在你身上吗?我该怎么做才能增加1个日历月?
例子:
SELECT DATE('2015-04-23') + INTERVAL '1 month'
Run Code Online (Sandbox Code Playgroud)
回来的2015-05-23
时候
SELECT DATE('2015-05-23') + INTERVAL '1 month'
Run Code Online (Sandbox Code Playgroud)
回来了2015-06-22!
此行为是由于Vertica在SQL 2008上建模,其中1 MONTH是静态的30天,而不是"智能月份".
dbadmin=> SELECT INTERVAL '1 MONTH';
?column?
----------
30
(1 row)
Run Code Online (Sandbox Code Playgroud)
为了获得所需的行为,您应该使用INTERVALYM:
dbadmin=> SELECT INTERVALYM '1 MONTH';
?column?
----------
0-1
(1 row)
dbadmin=> SELECT DATE('2015-05-23') + INTERVALYM '1 MONTH';
?column?
---------------------
2015-06-23 00:00:00
(1 row)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4601 次 |
| 最近记录: |