【问题标题】:How to implement add_months in PostgreSQL? [duplicate]如何在 PostgreSQL 中实现 add_months? [复制]
【发布时间】:2015-11-27 18:43:53
【问题描述】:

如何在 PostgreSQL 中实现 add_months ?? 就像 oracle ADD_MONTHS 返回日期一样。 前任。 ADD_MONTHS(hire_date,1)

【问题讨论】:

  • hire_date + interval '1' month

标签: postgresql


【解决方案1】:

使用

 hire_date + interval '1 month'

这将返回恰好加到租用日期的一个月。

有关 postgre 中日期和时间函数的更多参考Date time function

【讨论】:

    【解决方案2】:
    CREATE FUNCTION add_months(start DATE, months INT) RETURNS DATE AS
    $$
      SELECT (start + (months || ' months')::INTERVAL)::DATE
    $$
    LANGUAGE sql IMMUTABLE
    

    【讨论】:

      【解决方案3】:

      在 PostgreSQL 中你可以创建一个函数来完成这项工作

      create or replace function ADD_MONTHS(var_dte date,cnt int) returns setof date as
      $$
      declare
      qry text;
      begin
      qry = format( 'select (''%s''::date + interval ''%s'')::date',var_dte,cnt||' month') ;
      RETURN QUERY
           EXECUTE qry;
      end
      $$
      language plpgsql
      

      并调用这个函数

      select ADD_MONTHS('2015-11-27',1)
      

      结果:

      add_months
            date
      ----------
      2015-12-27
      

      你的情况

      select hire_date
            ,ADD_MONTHS(hire_date,1)
      from table_name 
      

      【讨论】:

        猜你喜欢
        • 2022-01-01
        • 2017-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-27
        • 2020-11-01
        • 2015-06-06
        • 1970-01-01
        相关资源
        最近更新 更多