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

45次阅读
没有评论

共计 2642 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章给大家介绍 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 数据类型是怎样的呢就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计2642字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)