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