首页 > 解决方案 > 是否有一些代码的行为方式与 oracle 中的“add_month”相同?

问题描述

如果您将月份的最后一天传递给Oracleadd_months函数,它将返回月份的最后一天。但据我所知,在 python 中,relativedelta无法返回月份的最后一天。

我无法导入MonthDelta,我不知道它是否有效。

例如,add_months(to_date('20190430','yyyymmdd'),-6)返回'20181031',

from dateutil.relativedelta import relativedelta
from datetime import date

date(2019,4,30) - relativedelta(months=6)
# returns 20181030

我想知道是否有一些功能add_month与 python 或 greenplum 中的功能完全相同。

标签: pythongreenplum

解决方案


两个不同的答案:

  1. 在 Greenplum 中安装 Oracle 兼容性功能。

    psql -f /usr/local/greenplum-db/share/postgresql/contrib/orafunc.sql
    

然后您可以像在 Oracle 中一样使用 Oracle 中的 add_months() 函数。

  1. 您可以使用间隔数据类型来添加月份。

    your_date_field + interval '1 month'
    

推荐阅读