暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T ADD_MONTHS、MONTHS_BETWEEN函数

原创 章芋文 2019-09-23
954

ADD_MONTHS

语法:

ADD_MONTHS(date, n)

ADD_MONTHS(datetime_string, n)

功能:返回date加(n>0)或减(n<0)n个月后的值。

add_month的第一个参数可以是一个日期类型(date/timestamp),也可以是一个日期字符串,格式需遵循nls_date_format。

第二个参数为int32的整数类型,接受的输入为数值类型,或可以转换为数值类型的字符串,若输入的为浮点数,该输入将被舍弃小数部分的方式转换为int32整数,若输入超出int32的范围,则做报错处理。

说明:

如果函数中的天数是当月的最后一天,则返回值中的日期也为该月的最后一天。例如:

SELECT ADD_MONTHS(to_date('2016-02-29','yyyy-mm-dd'),1) from DUAL;

ADD_MONTHS(TO_DATE('2016-02-29','YYYY-MM-DD'),1)
------------------------------------------------
2016-03-31 00:00:00

1 rows fetched.

如果函数中结果月份的天数比开始月份的天数少,那么也会向回调整以适应有效日期。例如:

SELECT ADD_MONTHS(to_date('2016-01-30','yyyy-mm-dd'),1) from DUAL;

ADD_MONTHS(TO_DATE('2016-01-30','YYYY-MM-DD'),1)
------------------------------------------------
2016-02-29 00:00:00

1 rows fetched.

示例:

返回2018年3月2日开始1个月后的日期。

SELECT ADD_MONTHS(to_date('2018-03-02','yyyy-mm-dd'),1) from DUAL;

ADD_MONTHS(TO_DATE('2018-03-02','YYYY-MM-DD'),1)
------------------------------------------------
2018-04-02 00:00:00

1 rows fetched.



MONTHS_BETWEEN

语法:

MONTHS_BETWEEN(date1,date2)

功能:Gauss100 计算两个日期(date1和date2)之间的月份差。

说明:如果date1和date2的day字段相同,或者都是当前月的最后一天,返回的值是一个整数。否则返回值包含小数部分,该小数部分等于两个日期的天数差除以31。如果date1大于date2,返回值为正数;如果date1小于date2,返回值为负数。入参:日期时间类型(DATE或者TIMESTAMP)返回值:数值类型(NUMBER)。

示例:

两个日期之间的月份差。

SELECT MONTHS_BETWEEN
       (TO_DATE('02-02-1995','MM-DD-YYYY'),
        TO_DATE('01-01-1995','MM-DD-YYYY') ) ""Months""
  FROM DUAL;

Months
----------------------------------------
1.03225806451612903225806451612903225807

1 rows fetched.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论