TO_DSINTERVAL 函数

TO_DSINTERVAL 函数将表示时间单位的字符串转换为 INTERVAL DAY TO SECOND 字符值。此函数还可以接受数字和字符串作为其参数,并以单个时间单位精度 DAY 、HOUR 、MINUTE 或 SECOND 返回 INTERVAL 值。

当您定义范围间隔存储分配策略以分片表或索引时,您可以使用单个参数(或两个参数,其同义词 NUMTODSINTERVAL)的 TO_DSINTERVAL 函数来指定间隔范围值。

语法

数字转换为 INTERVAL
字符串转换为 INTERVAL
元素 描述 限制 语法
DD 一位或两位数指定间隔中的天数 必须是下列其中之一的数据类型:
  • CHAR
  • NCHAR
  • VARCHAR
  • NVARCHAR
  • LVARCHAR
字符串
HH:MM:SS 三组两位数字,用冒号(:)符号分隔,指定间隔中的小时数、分钟数和秒数 必须是下列其中之一的数据类型:
  • CHAR
  • NCHAR
  • VARCHAR
  • NVARCHAR
  • LVARCHAR
字符串
number 指定间隔中的天数、小时数、分钟数或秒数的数字。

可以是表达式,包括列表达式,该表达式解析(或转换)到其中一个有效数字数据类型。

必须是下列其中之一的数据类型:
  • INT
  • BIGINT
  • SMALLINT
  • INT8
  • DECIMAL
  • REAL
  • FLOAT
  • SERIAL
  • SERIAL8
  • BIGSERIAL
数值

用法

当您使用结果分片表或索引时,可以使用 TO_DSINTERVAL 函数指定间隔值。TO_DSINTERVAL 函数在允许内置例程的上下文中有效。NUMTODSINTERVAL 函数与 TO_DSINTERVAL 函数相同都是用来转换数字值。

以下示例显示了 TO_DSINTERVAL 函数是如何解释不同的值:

以下示例指定一天的间隔:

TO_DSINTERVAL('1 00:00:00')
          TO_DSINTERVAL(1,'DAY')
          NUMTODSINTERVAL(1,'DAY')

以下示例指定一个小时的间隔:

TO_DSINTERVAL('0 01:00:00')
              TO_DSINTERVAL(1,'HOUR')
              NUMTODSINTERVAL(1,'HOUR')

以下示例指定一分 30 秒的间隔:

TO_DSINTERVAL('0 00:01:30')
                  TO_DSINTERVAL(1.5,'MINUTE')
                  NUMTODSINTERVAL(1.5,'MINUTE')

以下示例显示了如何使用表达式作为数字值:

TO_DSINTERVAL(10+10+100,'DAY')