INTERVAL DAY TO SECOND数据类型是怎样的呢

网友投稿 291 2023-12-13

INTERVAL DAY TO SECOND数据类型是怎样的呢

这篇文章给大家介绍INTERVAL DAY TO SECOND数据类型是怎样的呢,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

INTERVAL DAY TO SECOND数据类型是怎样的呢

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)。

时间间隔字面量的例子

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

关于INTERVAL DAY TO SECOND数据类型是怎样的呢就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何进行Oracle监听器日志的解析
下一篇:Trace file的命名规则和存放路径是什么
相关文章

 发表评论

暂时没有评论,来抢沙发吧~