更新时间:2025-09-24 GMT+08:00
分享

months_between

months_between函数用于返回date1与date2之间的月份差。

命令格式

months_between(string date1, string date2)

参数说明

表1 参数说明

参数

是否必选

参数类型

说明

date1

DATE

STRING

代表被减数。

格式为:
  • yyyy-mm-dd
  • yyyy-mm-dd hh:mi:ss
  • yyyy-mm-dd hh:mi:ss.ff3

date2

DATE

STRING

代表减数。

格式为:
  • yyyy-mm-dd
  • yyyy-mm-dd hh:mi:ss
  • yyyy-mm-dd hh:mi:ss.ff3

返回值说明

返回DOUBLE类型的值。

  • date1、date2非DATE或STRING类型时,返回报错,错误信息:data type mismatch。
  • date1、date2为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL。
  • 当date1晚于date2时,返回值为正。当date2晚于date1时,返回值为负。
  • 当date1和date2分别对应两个月的最后一天,返回整数月;否则计算方式为date1减去date2的天数除以31天,结果向上取整。
  • date1或date2值为NULL时,返回NULL。

示例代码

  • 返回0.0563172。
    select months_between('2023-08-16 10:54:00', '2023-08-14 17:00:00');
  • 返回0.06451613。
    select months_between('2023-08-16','2023-08-14');
  • 返回NULL。
    select months_between('2023-08-16',null);
  • 返回3。
    说明:2025-05-31和2025-02-28分别是各自月份的最后一天,所以返回整数月3
    months_between('2025-05-31','2025-02-28')
  • 返回3。
    说明:2025-05-28和2025-02-28的天数差为89天,89除以31等于2.87,向上取整后为3。
    months_between('2025-05-28','2025-02-28')

相关文档