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