INTERVAL DAY TO SECOND类型可以用来存储单位为天和秒的时间间隔。下面这条语句创建一个名为promotions的表,用来存储促销信息。promotions表包含了一个INTERVAL DAY TO SECOND类型的列duration,该列用来记录促销有效的时间间隔:

 CREATE TABLE promotions (
promotion_id INTEGER CONSTRAINT promotions_pk PRIMARY KEY,
name VARCHAR2(30) NOT NULL,
duration INTERVAL DAY(3) TO SECOND (4)
);

注意此处指定了duration列中天的精度为3,秒的小数部分精度为4。这就是说可以为该列的天存储3位数字,而为该列的秒最多可以在小数点右边存储4位数字。

要向数据库提供一个INTERVAL DAY TO SECOND字面值,可以使用下面的简化语法:

INTERVAL '[+|-][ d] [ h[: m[: s]]]' [DAY[( days_precision)]])
[TO HOUR | MINUTE | SECOND[( seconds_precision)]]

其中

● + 或 - 是一个可选的指示符,用来说明时间间隔是正数还是负数(默认为正数)。

● d 是时间间隔的天数。

● h 是一个可选参数,表示时间间隔的小时数。如果指定了天和小时,必须在INTERVAL子句中包含TO HOUR。

● h 是一个可选参数,表示时间间隔的分钟数。如果指定了天和分,必须在INTERVAL子句中包含TO MINUTES。

● s 是一个可选参数,表示时间间隔的秒数。如果指定了天和秒,必须在INTERVAL子句中包含TO SECOND。

● days_precision是一个可选参数,用来说明天数的精度(默认值为2)。

● seconds_precision是一个可选参数,用来说明秒的精度(默认值为6)。

表5-12给出了几个INTERVAL DAY TO SECOND类型的时间间隔字面量的例子。

表5-12  时间间隔字面量的例子

时间间隔字面量

说明

INTERVAL ‘3’ DAY

时间间隔为3天

INTERVAL ‘2’ HOUR

时间间隔为2小时

INTERVAL ‘25’ MINUTE

时间间隔为25分钟

INTERVAL ‘45’ SECOND

时间间隔为45秒

INTERVAL ‘3 2’ DAY TO HOUR

时间间隔为3天零2小时

INTERVAL ‘3 2:25’ DAY TO MINUTE

时间间隔为3天零2小时25分

INTERVAL ‘3 2:25:45’ DAY TO SECOND

时间间隔为3天零2小时25分45秒

INTERVAL ‘123 2:25:45.12’ DAY(3)

TO SECOND(2)

时间间隔为123天零2小时25分45.12秒; 天的精度是3位数字,秒的小数部分的精度是2位数字

INTERVAL ‘3 2:00:45’ DAY TO SECOND

时间间隔为3天2小时0分45秒

INTERVAL ‘-3 2:25:45’ DAY TO SECOND

时间间隔为负数,值为3天零2小时25分45秒

INTERVAL ‘1234 2:25:45’ DAY(3)

TO SECOND

时间间隔无效,因为天的位数超过了指定的精度3

INTERVAL ‘123 2:25:45.123’ DAY

TO SECOND(2)

时间间隔无效,因为秒的小数部分的位数超过了指定的精度2

下面这个INSERT语句向promotions表添加一行记录:

 INSERT INTO promotions (promotion_id, name, duration)
VALUES (1, '10% off Z Files', INTERVAL '3' DAY);

INSERT INTO promotions (promotion_id, name, duration)
VALUES (2, '20% off Pop 3', INTERVAL '2' HOUR);

INSERT INTO promotions (promotion_id, name, duration)
VALUES (3, '30% off Modern Science', INTERVAL '25' MINUTE);

INSERT INTO promotions (promotion_id, name, duration)
VALUES (4, '20% off Tank War', INTERVAL '45' SECOND);

INSERT INTO promotions (promotion_id, name, duration)
VALUES (5, '10% off Chemistry', INTERVAL '3 2:25' DAY TO MINUTE);

INSERT INTO promotions (promotion_id, name, duration)
VALUES (6, '20% off Creative Yell', INTERVAL '3 2:25:45' DAY TO SECOND);

INSERT INTO promotions (promotion_id, name, duration)
VALUES (7, '15% off My Front Line',
INTERVAL '123 2:25:45.12' DAY(3) TO SECOND(2));

下面这个查询对promotions表进行检索,注意duration列值的格式化:

 SELECT *
FROM promotions;
PROMOTION_ID  NAME                              DURATION
------------ ------------------------------   ------------------
1   10% off Z Files                  +003 00:00:00.0000
2   20% off Pop 3                    +000 02:00:00.0000
3   30% off Modern Science           +000 00:25:00.0000
4   20% off Tank War                 +000 00:00:45.0000
5   10% off Chemistry                +003 02:25:00.0000
6   20% off Creative Yell            +003 02:25:45.0000
7   15% off My Front Line            +123 02:25:45.1200

Oracle 数据库 INTERVAL DAY TO SECOND类型的使用的更多相关文章

  1. oracle数据库的date和timestamp类型

    1.date类型存储数据的格式为年月日时分秒,可以精确到秒 timestamp类型存储数据的格式为年月日时分秒,可以精确到纳秒(9位) 2.date类型 Date类型的数据可以显示到年月日,也可以显示 ...

  2. ORACLE数据库学习之体系结构

     Oracle体系结构 ORACLE数据库体系结构决定了oracle如何使用网络.磁盘和内存.包括实例(instance),文件(file)和进程(process不包括后台进程)三部分. 实例:每 ...

  3. Oracle 数据库、实例、用户、表空间、表之间的关系

    数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库. ...

  4. 分享知识-快乐自己: Oracle数据库实例、用户、表、表空间之间关系

    数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件). 其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库 ...

  5. Oracle数据库的基本概念(转)

    一.数据库 我们在安装Oracle数据库时,全局数据库名:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用 ...

  6. Oracle数据库字段类型说明

    目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型.数字数据类型.日期时间数据类型.大型对象(LOB)数据类型.RAW和LONG RAW数据类型.ROWID和UROWID数据 ...

  7. Oracle数据库date类型与Java中Date的联系与转化

    以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助.new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当前 ...

  8. Oracle 数据库字段类型使用说明

    简介 目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型.数字数据类型.日期时间数据类型.大型对象(LOB)数据类型.RAW和LONG RAW数据类型.ROWID和UROWI ...

  9. Oracle数据库类型

    Oracle数据库类型 字符类型char[(length)] 定长字符 最长2000字节varchar2[(length)] 可变长度的字符数据类型,最长4000字节NCHAR[(length)] 固 ...

随机推荐

  1. python3----转换大小写(upper lower capitalize and title)

    和其他语言一样,Python为string对象提供了转换大小写的方法:upper() 和 lower().还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及 ...

  2. OpenCV学习笔记十:opencv_superres模块

    一,简介: 该库用于图像超分辨率重建.即通过硬件或软件的方法提高原有图像的分辨率,通过一系列低分辨率的图像来得到一幅高分辨率的图像.

  3. day9笔记--文件操作

    文件操作  计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用 ...

  4. laravel Lumen邮箱发送配置

    Lumen 中配置邮件 https://blog.csdn.net/glovenone/article/details/54344013 Lareval 比 Lumen 多了一个步骤 https:// ...

  5. 笔记-Android学习历程

    1. Junit 配置:在manifest节点下 写入instrumentation,在其兄弟节点下配置application <instrumentation android:name=&qu ...

  6. linux 文本编辑器

    文本编辑器 文本编辑器是Linux操作系统中的重要工具.其中,VI是使用最广泛的文本编辑器,其可以在任何shell中使用.此外,Red Hat Enterprise Linux6 还提供了gedit工 ...

  7. zxing 二维码扫描 配置和使用

    本文转载至 http://blog.csdn.net/a6472953/article/details/8796501   二维码扫描使用最多的主要有两个库:zbarSDK 和zxing 关于zbar ...

  8. jqGrid 事件

    jqGrid 事件 使用方法 var lastSel; jQuery("#gridid").jqGrid({ ... onSelectRow: function(id){ if(i ...

  9. Splay_Tree 模板(区间修改,旋转操作)

    1.旋转操作 #define MAXN 100100 bool Add[MAXN];//延迟标记 struct Splay_Tree { int cnt, rt;//cnt为节点数,rt == roo ...

  10. 一张图玩转H5测试

    背景 随着各种H5页面的普及和运用,并深深的影响着我们各个业务的发展,前两年也对H5测试的有着不少积累,但都是根据项目的要求,这里测试下,那里测试下,今年上半年专门成立了H5测试研究虚拟小组,专门研究 ...