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 1OperatorOperand 2Result Type
datetime+intervaldatetime
datetime-intervaldatetime
interval+datetimedatetime
datetime-datetimeinterval
interval+intervalinterval
interval-intervalinterval
interval*numericinterval
numeric*intervalinterval
interval/numericinterval
计算机