在本教程中,我们将介绍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;

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

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 个群。

oracle数据库interval使用,Oracle Interval类型相关推荐

  1. oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...

    天萃荷净 使用copy实现long类型转移表空间,表空间的数据文件损坏,在转移该表空间相关表时,遇到让人郁闷的long类型.不能使用ctas和move来实现转移,最后通过古老的copy来实现该项工作. ...

  2. Oracle数据库中字符串相关字段类型辨析

    本文来自李明子csdn博客(http://blog.csdn.net/free1985),商业转载请联系博主获得授权,非商业转载请注明出处! 1 引子 字符串类型的字段在各关系数据库中均占有重要地位. ...

  3. oracle数据库基础测试,ORACLE数据库基础测试题oracle数据库复习题.docx

    <ORACLE数据库基础测试题oracle数据库复习题.docx>由会员分享,可在线阅读,更多相关<ORACLE数据库基础测试题oracle数据库复习题.docx(18页珍藏版)&g ...

  4. oracle中毒,oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666...

    oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666 客户名称 保密 数据类型 oracle 11G 数据容量 100 gb 故障类型 服务器中毒,文件 ...

  5. 视频教程-oracle数据库快速入门-Oracle

    oracle数据库快速入门 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥21.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...

  6. arcgis读取oracle数据库,arcgis连接Oracle数据库

    arcgis连接Oracle数据库 配置声明:本人的电脑是win10 64位,安装的Oracle是oracleR11gr2 64  arcgis版本位10.2 安装是在同一台电脑上. 一.首先是安装O ...

  7. 数据如何导入oracle数据库,如何用Oracle导入导出工具来实现Oracle数据库移植?

    Oracle数据库作为目前市场的主流数据库之一,许多应用都在其上进行开发,由于Oracle数据库更新换代的原因和不同的应用程序提供商,可能会造成在一个单位的应用中存在Oracle的几种版本,如Orac ...

  8. Oracle数据库教程(Oracle备份、恢复、升级、迁移)视频教程

    Oracle数据库教程(Oracle备份.恢复.升级.迁移)视频教程 风哥Oracle备份恢复与迁移升级专题包括:Oracle备份恢复基础.用户模式的备份恢复.RMAN备份恢复.Flashback闪回 ...

  9. oracle 连接组件,[2021] node连接oracle数据库示例[使用oracle官方组件]

    [2021] node连接oracle数据库示例[使用oracle官方组件] node 连接 oracle 示例 本示例采用的 oracledb 和 instantclient-basic-windo ...

  10. oracle免费的环境,【Oracle数据库免费版】Oracle数据库官方下载 v11gR2 免费版-趣致软件园...

    Oracle数据库免费版是一款比较实用的数据库软件,内含强大的功能,支持对数据的完整管理,而且还能实现保存的持久性.Oracle数据库官方版采用了分布式的处理,支持各种数据库的运行,同时软件还能为大大 ...

最新文章

  1. CVPR15 image retrieval reading list
  2. libxml的安装和相关数据结构详解
  3. 提升不止一点点,Dubbo 3.0 预览版详细解读
  4. 输入python出现商店_Win 10 中使用 Python 碰到的奇怪现象
  5. Linux中断一网打尽(2) - IDT及中断处理的实现
  6. 飞龙的程序员书单 – 编程语言
  7. php中ajax用法,thinkphp中使用ajax
  8. 什么样的两个矩阵相似_Lecture 27 | 相似矩阵
  9. 从门户到搜索:谁为百度打工?
  10. 第1章 软件测试概述需求分析
  11. 轻量级微信动态活码生成管理源码
  12. 怎么用c语言编辑出天依蓝,我天依蓝
  13. Java中double类型输出小数点后两位
  14. Perl正则表达式讲解
  15. VRRP协议详解-----(1)
  16. [附源码]JAVA+ssm计算机毕业设计Sketch2Mod网站(程序+Lw)
  17. 2019最新《html5+css3课程 前端开发教程》
  18. VUE3.0学习笔记(一)-创建VUE项目
  19. DNS解析详细过程(转载)
  20. Json4s的一些用法 JSon转对象实体 Json转Map Map转Json

热门文章

  1. java 项目的部署方案
  2. couch base使用记录
  3. 分享:查重软件(免费)
  4. oracle between and 边界查询用法
  5. P4556 雨天的尾巴 线段树合并
  6. va start linux头文件,va_start/va_end函数-linux
  7. python基础编码规范_Python语言的基本语法和编码规范.ppt
  8. Java 学习之路(二十)- 认识数组和变量
  9. 计算机更改为英语,win7如何修改语言 电脑语言改成英文的方法
  10. sre和devops_什么是SRE,它与DevOps有什么关系?