VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

SUBDATE

功能描述

SUBDATE函数用于将给定日期减去时间值(作为间隔)。

注意事项

该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。

语法格式

SUBDATE(date, INTERVAL expr unit)
SUBDATE(date, days)

参数说明

  • date

    合法的日期表达式。

  • expr

    要减去的时间间隔值。

  • 当days或expr负数时,返回值增加对应值。

  • 当days为小数时,按照四舍五入进行天数的增减。

  • unit

    减去的时间间隔单位,取值范围如下表所示:

    unit值 含义
    SECOND
    MINUTE
    HOUR
    DAY
    MONTH
    YEAR
    MINUTE TO SECOND 分_秒
    HOUR TO MINUTE 时_分
    DAY TO SECOND 天_秒
    DAY TO MINUTE 天_分
    DAY TO HOUR 天_时
  • days

    要减去的天数。

    取值范围:正数、负数、0、小数。

示例

示例1:interval为只包含月份。

select subdate('2022-5-31 11:12:13.1234567',INTERVAL '11' MONTH);

结果返回如下:

 subdate('2022-5-31 11:12:13.1234567',INTERVAL '11' MONTH)
-----------------------------------------------------------
 2021-06-30 11:12:13.123457
(1 row)

示例2:interval包含天、小时。

select subdate('2022-5-31 11:12:13.1234567',INTERVAL '11 3' DAY TO HOUR);

结果返回如下:

 subdate('2022-5-31 11:12:13.1234567',INTERVAL '11 3' DAY TO HOUR)
-------------------------------------------------------------------
 2022-05-20 08:12:13.123457
(1 row)

示例3:expr为负数。

select subdate('2022-5-31 11:12:13.1234567',INTERVAL '-11' HOUR); 

结果返回如下:

 subdate('2022-5-31 11:12:13.1234567',INTERVAL '-11' HOUR)
-----------------------------------------------------------
 2022-05-31 22:12:13.123457
(1 row)

示例4:使用SUBDATE(date,days)语法,days为小数。

select subdate(date '2022-5-31', -2.8);

结果返回如下:

 subdate(date '2022-5-31', -2.8)
---------------------------------
 2022-06-03
(1 row)