AGE_IN_MONTHS

返回两个日期之间的月份差,以整数表示。

行为类型

  • 不可变,如果两个日期实参均为 TIMESTAMP 数据类型

  • 稳定,如果任一日期为 TIMESTAMPTZ 或仅提供一个实参

语法

AGE_IN_MONTHS ( [ date1,] date2 )

参数

date1
date2
指定要测量的期限的边界。如果您只提供一个实参,Vertica 会将 date2 设置为当前日期。这两个参数的计算结果必须为以下数据类型之一:
  • DATE

  • TIMESTAMP

  • TIMESTAMPTZ

如果 date1 < date2,AGE_IN_MONTHS 将返回负值。

示例

获取 1972 年 3 月 2 日出生的人截至 1990 年 6 月 21 日的月龄:

=> SELECT AGE_IN_MONTHS('1990-06-21'::TIMESTAMP, '1972-03-02'::TIMESTAMP);
  AGE_IN_MONTHS
---------------
           219
(1 row)

如果第一个日期小于第二个日期,AGE_IN_MONTHS 将返回负值

=> SELECT AGE_IN_MONTHS('1972-03-02'::TIMESTAMP, '1990-06-21'::TIMESTAMP);
AGE_IN_MONTHS
---------------
-220
(1 row)

获取 1939 年 11 月 21 日出生的人截至今天的月龄:

=> SELECT AGE_IN_MONTHS ('1939-11-21'::DATE);
 AGE_IN_MONTHS
---------------
           930
(1 row)