当前位置:   article > 正文

oracle数据库interval使用,Oracle Interval类型

oracle interval

在本教程中,我们将介绍Oracle INTERVAL数据类型,并演示如何有效处理区间值。

Oracle INTERVAL数据类型简介

Oracle提供了两种日期时间数据类型:DATE和TIMESTAMP用于存储时间点数据。另外,它提供INTERVAL数据类型用于存储一段时间。

有两种类型的INTERVAL:

INTERVAL YEAR TO MONTH - 间隔使用年份和月份。

INTERVAL DAY TO SECOND - 使用包括小数秒在内的天,小时,分钟和秒存储间隔。

1. Oracle INTERVAL YEAR TO MONTH

INTERVAL YEAR TO MONTH数据类型使用YEAR和MONTH字段存储一段时间。

下面介绍一个INTERVAL YEAR TO MONTH:

INTERVAL YEAR [(year_precision)] TO MONTH

year_precision代表YEAR字段中的位数。范围从0到9。

year_precision是可选的。如果省略year_precision参数,则默认为2。也就是说,默认情况下,最多可以存储99年和11个月的期限,这个期限必须小于100年。

2. Oracle INTERVAL YEAR TO MONTH文字

要指定INTERVAL YEAR TO MONTH数据类型的文字值,可以使用以下格式:

INTERVAL 'year[-month]' leading (precision) TO trailing

leading和trailing可以是YEAR或MONTH。

以下是参数:

year[-month]

year和month是整个区间的leading和trailing的整数。 如果leading是YEAR,trailing是MONTH,那么month字段的范围从0到11。

trailing列必须小于leading列。 例如,INTERVAL '1-2' MONTH TO YEAR是无效的,因为leading列YEAR大于MONTH的leading字段。

precision

是leading字段中的最大数字位数。精度范围为:0~9,默认值为2。

下表说明了INTERVAL YEAR TO MONTH文字的示例:

INTERVAL YEAR TO MONTH文字

含意

INTERVAL '120-3' YEAR(3) TO MONTH

间隔120年,3个月; 由于前导字段的值大于默认精度(2位),因此必须指定前导字段精度YEAR(3)。

INTERVAL '105' YEAR(3)

间隔105年0个月。

INTERVAL '500' MONTH(3)

间隔500个月。

INTERVAL '9' YEAR

间隔9年,相当于INTERVAL '9-0' YEAR TO MONTH

INTERVAL '40' MONTH

40个月或3年4个月,相当于INTERVAL '3-4' YEAR TO MONTH

INTERVAL '180' YEAR

无效的时间间隔,因为’180’有3个数字,它大于默认精度(2)

3. Oracle INTERVAL YEAR TO MONTH示例

首先,创建一个名为candidates的新表格:

CREATE TABLE candidates (

candidate_id NUMBER,

first_name VARCHAR2(50) NOT NULL,

last_name VARCHAR2(50) NOT NULL,

job_title VARCHAR2(255) NOT NULL,

year_of_experience INTERVAL YEAR TO MONTH,

PRIMARY KEY (candidate_id)

);

在此表中,有一个year_of_experience列,其数据类型为INTERVAL YEAR TO MONTH。

其次,将数据插入candidates表:

INSERT INTO candidates (

first_name,

last_name,

job_title,

year_of_experience

)

VALUES (

'Camila',

'Kramer',

'SCM Manager',

INTERVAL '10-2' YEAR TO MONTH

);

在这个上面这个插入语句中,在year_of_experience列中插入了一个INTERVAL '10-2' YEAR TO MONTH 间隔字面值。

INSERT INTO candidates (

first_name,

last_name,

job_title,

year_of_experience

)

VALUES (

'Keila',

'Doyle',

'SCM Staff',

INTERVAL '9' MONTH

);

在这个语句中,在year_of_experience列中插入了一个为INTERVAL '9' MONTH的间隔字面值。

第三,查询INTERVAL YEAR TO MONTH列的数据:

SELECT

*

FROM

candidates;

执行上面查询语句,得到以下结果 -

78d874c7b96b3e24029b7d6e0266e76e.png

4. Oracle INTERVAL DAY TO SECOND数据类型

INTERVAL DAY TO SECOND是一种按天,小时,分钟和秒钟存储一段时间。

以下显示INTERVAL DAY TO SECOND数据类型的语法:

INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]

在上面这个语法中,

day_precision - 是DAY字段中的位数。取值范围是0~9,缺省值是2。

fractional_seconds_precision 是SECOND字段小数部分的位数。范围从0~9。如果省略fractional_seconds_precision,则默认为6。

5. Oracle INTERVAL YEAR TO SECOND字面值

INTERVAL YEAR TO SECOND的字面值形式如下:

INTERVAL leading (leading_precision) to trailing(fractional_seconds_precision)

下表显示了INTERVAL YEAR TO SECOND文字的一些示例:

INTERVAL YEAR TO SECOND字面值

含意

INTERVAL '11 10:09:08.555' DAY TO SECOND(3)

11天,10小时,09分08秒,555/千秒。

INTERVAL '11 10:09' DAY TO MINUTE

11天,10小时和09分钟。

INTERVAL '100 10' DAY(3) TO HOUR

100天10个小时。

INTERVAL '999' DAY(3)

999天

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7)

9小时08分钟和7.6666666秒。

INTERVAL '09:30' HOUR TO MINUTE

9小时30分钟。

INTERVAL '8' HOUR

8小时

INTERVAL '15:30' MINUTE TO SECOND

15分30秒。

INTERVAL '30' MINUTE

30分钟

INTERVAL '5' DAY

5天

INTERVAL '40' HOUR

40小时

INTERVAL '15' MINUTE

15分钟

INTERVAL '250' HOUR(3)

250个小时

INTERVAL '15.6789' SECOND(2,3)

四舍五入到15.679秒。 由于精度为3,分数秒’6789’被舍入为’679’

在本教程中,您已学习如何使用Oracle INTERVAL数据类型在表中存储时间段。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/678540
推荐阅读
相关标签
  

闽ICP备14008679号