使用INTERVAL DAY TO SECOND类型
来源:互联网 发布:ubuntu arm 国内源 编辑:程序博客网 时间:2024/05/17 03:14
原文地址:http://blog.csdn.net/tianzengyan/article/details/5604692
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.00002 20% off Pop 3 +000 02:00:00.00003 30% off Modern Science +000 00:25:00.00004 20% off Tank War +000 00:00:45.00005 10% off Chemistry +003 02:25:00.00006 20% off Creative Yell +003 02:25:45.00007 15% off My Front Line +123 02:25:45.1200
- 使用INTERVAL DAY TO SECOND类型
- 使用INTERVAL DAY TO SECOND类型
- 使用INTERVAL DAY TO SECOND类型
- 使用INTERVAL DAY TO SECOND类型
- 使用INTERVAL DAY TO SECOND类型
- Oracle INTERVAL(INTERVAL DAY TO SECOND,INTERVAL YEAR TO MONTH)数据类型的使用
- Oracle INTERVAL DAY TO SECOND数据类型
- Oracle INTERVAL DAY TO SECOND数据类型
- DATE 、TIMESTAMP、INTERVAL DAY TO SECOND
- Oracle INTERVAL DAY TO SECOND数据类型
- Oracle INTERVAL DAY TO SECOND数据类型
- Oracle,INTERVAL DAY TO SECOND,EXTRACT (datetime)
- interval year to month and interval day to second
- interval day to second和interval year to month数据类型
- interval day to second和interval…
- 将oracle 中INTERVAL DAY TO SECOND 类型转成整数秒的方法
- SQL学习之:INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND
- Oracle中INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND数据类型
- HDU 5017 Ellipsoid (计算几何,模拟退火)
- 20141006
- 最短编辑距离 poj3356
- git 图解Git/图形化的Git参考手册
- VS2005下编译Lua源代码
- 使用INTERVAL DAY TO SECOND类型
- 实验一: VC编程工具的灵活使用
- andorid cocos2d 游戏开发入门学习经验之总结
- bzoj 1146 - Network
- PMP考试的过与不过
- Android Shape绘制实用圆圈
- 排序——插入,快速排序
- HDU 5009 Paint Pearls (动态规划)
- tomcat日志配置详解