时间间隔表达式

  • interval_expr是一个时间间隔表达式,其语法表示为:
INTERVAL expr unit

说明:expr为一个数量值,unit为expr的单位。unit允许的取值和对应的expr取值格式可参考表1

注:若expr值的组成部分个数少于unit对应的标准形式时,将expr值的各个划分部分从右到左依次填充到unit对应标准形式中。例如:对于时间单位unit为DAY_SECOND,若expr为‘1 10’,则最终表示的时间间隔值为‘0 00:01:10’。

通常时间间隔表达式用于一些特定的时间计算函数,例如DATE_ADD()和DATE_SUB()等。

表 1 时间间隔表达式中unit的取值和对应的expr的表达格式

unit取值

expr取值格式

MICROSECOND

MICROSECONDS

SECOND

SECONDS

MINUTE

MINUTES

HOUR

HOURS

DAY

DAYS

WEEK

WEEKS

MONTH

MONTHS

QUARTER

QUARTERS

YEAR

YEARS

SECOND_MICROSECOND

'SECONDS.MICROSECONDS'

MINUTE_MICROSECOND

'MINUTES:SECONDS.MICROSECONDS'

MINUTE_SECOND

'MINUTES:SECONDS'

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

'YEARS-MONTHS'

示例:

openGauss=# create database test_db dbcompatibility 'B';
CREATE DATABASE
openGauss=# \c test_db 
test_db=# set dolphin.b_compatibility_mode to on;
SET
test_db=# select date_add('1997-12-31 23:59:59',INTERVAL 1 MICROSECOND);
          date_add          
----------------------------
 1997-12-31 23:59:59.000001
(1 row)

test_db=# select date_add('1997-12-31 23:59:59',INTERVAL '1.111' SECOND_MICROSECOND);
        date_add         
-------------------------
 1998-01-01 00:00:00.111
(1 row)

test_db=# select '1997-12-11' + interval '1 10' day_second;
      ?column?       
---------------------
 1997-12-11 00:01:10
(1 row)
意见反馈
编组 3备份
    openGauss 2024-07-20 00:54:09
    取消