Oracle NUMTODSINTERVAL() 函数使用指南

Oracle NUMTODSINTERVAL() 是一个内置函数,它将给定的数字转为 INTERVAL DAY TO SECOND 文本。

Oracle NUMTODSINTERVAL() 语法

这里是 Oracle NUMTODSINTERVAL() 函数的语法:

NUMTODSINTERVAL(n, 'interval_unit')

参数

n

必需的。它可以是任何 NUMBER 值或可以隐式转换为 NUMBER 值的表达式

'interval_unit'

必需的。它可以是CHARVARCHAR2NCHARNVARCHAR2 数据类型。 它指示了 n 的单位,它必须是以下的值之一并且不区分大小写:

  • 'DAY'
  • 'HOUR'
  • 'MINUTE'
  • 'SECOND'

返回值

Oracle NUMTODSINTERVAL() 函数返回一个由给定数字转为的 INTERVAL DAY TO SECOND 文本。

默认情况下,返回的精度为 9。

如果任意一个参数为 NULLNUMTODSINTERVAL() 将返回 NULL

Oracle NUMTODSINTERVAL() 示例

这里有几个展示了 Oracle NUMTODSINTERVAL() 函数用法的示例。

要创建一个值为 1 天的间隔值,请使用如下语句:

SELECT
  NUMTODSINTERVAL(1, 'DAY')
FROM dual;

输出:

NUMTODSINTERVAL(1,'DAY')
___________________________
+01 00:00:00.000000

小时

要创建一个值为 2 小时的间隔值,请使用如下语句:

SELECT
  NUMTODSINTERVAL(2, 'HOUR')
FROM dual;

输出:

NUMTODSINTERVAL(2,'HOUR')
____________________________
+00 02:00:00.000000

分钟

要创建一个值为 3 分钟的间隔值,请使用如下语句:

SELECT
  NUMTODSINTERVAL(3, 'MINUTE')
FROM dual;

输出:

NUMTODSINTERVAL(3,'MINUTE')
______________________________
+00 00:03:00.000000

要创建一个值为 4 秒的间隔值,请使用如下语句:

SELECT
  NUMTODSINTERVAL(4, 'SECOND')
FROM dual;

输出:

NUMTODSINTERVAL(4,'SECOND')
______________________________
+00 00:00:04.000000

您可以提供一个带有小数的值以包含小数秒,

SELECT
  NUMTODSINTERVAL(4.123123, 'SECOND')
FROM dual;

输出:

NUMTODSINTERVAL(4,'SECOND')
______________________________
+00 00:00:04.000000

小数秒的最大精度为 9 位,如果超过 9 位,小数秒将被四舍五入到 9 位:

SELECT
  NUMTODSINTERVAL(4.1111111115, 'SECOND')
FROM dual;

输出:

NUMTODSINTERVAL(4.1111111115,'SECOND')
_________________________________________
+00 00:00:04.111111112

NULL 参数

如果任意一个参数为 NULLNUMTODSINTERVAL() 将返回 NULL

SET NULL 'NULL';
SELECT
    NUMTODSINTERVAL(NULL, 'DAY') NULL_1,
    NUMTODSINTERVAL(1, NULL) NULL_2,
    NUMTODSINTERVAL(NULL, NULL) NULL_3
FROM dual;

输出:

NULL_1    NULL_2    NULL_3
_________ _________ _________
NULL      NULL      NULL

在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。

结论

Oracle NUMTODSINTERVAL() 是一个内置函数,它将给定的数字转为 INTERVAL DAY TO SECOND 文本。