Oracle PL / SQL INTERVAL数据类型

INTERVAL YEAR TO MONTH数据类型

INTERVAL YEAR TO MONTH存储和操作年和月的间隔。

语法是:

INTERVAL YEAR[(precision)] TO MONTH 
 

precision指定“years”字段中的数字位数。

我们必须在0..4的范围内使用整数字面值。默认值为2。

以下代码显示如何将字面值分配到INTERVAL YEAR TO MONTH变量。

DECLARE 
  lifetime  INTERVAL YEAR(3) TO MONTH; 
BEGIN 
  lifetime := INTERVAL '101-3' YEAR TO MONTH;  -- Interval literal 
 
  lifetime := '101-3';  -- Implicit conversion from character type 
 
  lifetime := INTERVAL '101' YEAR;  -- Specify only years 
  lifetime := INTERVAL '3' MONTH;   -- Specify only months 
END; 
/ 

 

INTERVAL DAY TO SECOND数据类型

INTERVAL DAY TO SECOND存储和操作天,小时,分钟和秒的间隔。

语法是:

INTERVAL DAY[(leading_precision) TO SECOND (fractional_seconds_precision) 

leading_precision和fractional_seconds_precision分别指定days字段和seconds字段中的位数。

我们可以在0..9的范围内使用整数字面值。

默认值分别为2和6。

以下代码声明了一个类型为INTERVAL DAY TO SECOND的变量,并为其分配一个值。

DECLARE 
  lag_time  INTERVAL DAY(3) TO SECOND(3); 
BEGIN 
  lag_time := '7 09:24:30'; 
 
  IF lag_time > INTERVAL '6' DAY THEN 
    DBMS_OUTPUT.PUT_LINE ('Greater than 6 days'); 
  ELSE 
    DBMS_OUTPUT.PUT_LINE ('Less than 6 days'); 
  END IF; 
END; 
/ 

 

日期时间和间隔算术

PL / SQL可以创建datetime和间隔表达式。

下表显示了我们可以使用的运算符:

Operand 1 Operator Operand 2 Result Type
datetime + interval datetime
datetime - interval datetime
interval + datetime datetime
datetime - datetime interval
interval + interval interval
interval - interval interval
interval * numeric interval
numeric * interval interval
interval / numeric interval