博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 数据库 INTERVAL DAY TO SECOND类型的使用
阅读量:7082 次
发布时间:2019-06-28

本文共 3002 字,大约阅读时间需要 10 分钟。

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

转载于:https://www.cnblogs.com/cz-xjw/p/5177888.html

你可能感兴趣的文章
Numpy常用属性及方法
查看>>
惊天消息!美国重启病毒实验,或对人类造成巨大威胁
查看>>
一条SQL完成跨数据库实例Join查询
查看>>
BZOJ 1266 [AHOI2006]上学路线route
查看>>
名词小结:base href、GreaseMonkey、Varchar、char、网速的计算
查看>>
数据结构
查看>>
hadoop3.x的安装
查看>>
03 EM算法 - EM算法流程和直观案例
查看>>
使用uwolfer gerrit-rest-java-client获取Gerrit信息
查看>>
五分钟读懂UML类图
查看>>
中科创达副总裁孙力:AI视觉仍在路上,平台需求胜过算法
查看>>
Javascript基础之-Promise
查看>>
报名 | 清华方圆系列之大数据分析与可视化报告会将于下周举办
查看>>
react学习系列4 组件生命周期
查看>>
了解 php.ini
查看>>
异地容灾方案解析
查看>>
深入理解Vue的生命周期
查看>>
WPF's Style BasedOn
查看>>
.NET Core实战项目之CMS 第十章 设计篇-系统开发框架设计
查看>>
.NET服务安装、卸载、启动、停止、判断是否存在
查看>>