# 时间间隔表达式
语法：INTERVAL EXPR UNIT
说明：EXPR表示数值，UNIT说明符用于解释数值的单位，如HOUR、DAY、WEEK等。关键字INTERVAL和说明符不区分大小写。
时间间隔表达式中UNIT的取值范围如下[表1]所示，允许任何标点符号分隔EXPR格式。[表1]中显示的是建议的分隔符。
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
INTERVAL表达式仅在sql_compatibility = 'MYSQL'，且参数b_format_version值为5.7、b_format_dev_version值为s1时，才支持上述功能。
 表1时间间隔表达式UNIT取值范围 
| UNIT取值范围             | 预期EXPR格式                                 |
|:---|:---|
| MICROSECOND         | MICROSECONDS                              |
| SECOND               | SECONDS                                   |
| MINUTE               | MINUTES                                 |
| HOUR                  | HOURS                                    |
| DAY                    | DAYS                                      |
| WEEK                 | WEEKS                                     |
| MONTH                | MONTHS                                   |
| QUARTER            | QUARTERS                                 |
| YEAR                 | YEARS                                    |
| SECOND_MICROSECOND   | 'SECOND_MICROSECOND'                      |
| MINUTE_MICROSECOND | 'MINUTES:SECONDS.MICROSECONDS'           |
| MINUTE_SECOND      | 'MINUTES:SECONDS'                         |
| HOUR_MICROSECOND       | 'HOURS:MINUTES:SECONDS.MICROSECONDS'     |
| HOUR_SECOND         | 'HOURS:MINUTES:SECONDS'                  |
| HOUR_MINUTE         | 'HOURS:MINUTES'                         |
| DAY_MICROSECOND         | 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS' |
| DAY_SECOND            | 'DAYS HOURS:MINUTES:SECONDS'            |
| DAY_MINUTE        | 'DAYS HOURS:MINUTES'                     |
| DAY_HOUR            | 'DAYS HOURS'                             |
| YEAR_MONTH         | 'YEAR_MONTH'                             |
   
示例：
```
gaussdb=# SELECT DATE_ADD('2018-05-01', INTERVAL 1 DAY);
  date_add  
------------
 2018-05-02
(1 row)
gaussdb=# SELECT DATE_SUB('2018-05-01', INTERVAL 1 YEAR);
  date_sub  
------------
 2017-05-01
(1 row)
gaussdb=# SELECT DATE'2023-01-10' - INTERVAL 1 DAY;
      ?column?       
---------------------
 2023-01-09 00:00:00
(1 row)
gaussdb=# SELECT DATE'2023-01-10' + INTERVAL 1 MONTH;
      ?column?       
---------------------
 2023-02-10 00:00:00
(1 row)
```
