已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle中的时间间隔型数据掌握方法 在9i 版本以前,Oracle 没有内置的方式来记录时间的流逝。DATE型数据用来记录单独的时间点;但是要表达一个时间量(也就是一个间隔),数据库的设计者就必须把时间间隔转换成原始单位秒,然后用一个NUMBER列来保存它。 虽然NUMBER这个数据类型可以以秒为单位准确地表示时间,但是它使得时间的计算变得很困难。比如,60秒是1分钟,60分钟是1个小时,24个小时等于1天这些数字在以十进制为基础的数字系统中都是非常蹩脚的。 在Oracle 9i中,按照SQL 99标准,增加了时间间隔型数据INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND,它们和其他几种数据类型一起使得对时间的处理更加准确。TIMESTAMP、TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE等数据类型都把时间的表达精确到了若干分之一秒,而且后面两种还解决了地理位置造成的时间变化。 在SQL和PL/SQL中,你都可以用时间间隔型数据,它们都是用同一种方式规定的: INTERVAL YEAR(year_precision) TO MONTH INTERVAL DAY(day_precision) TO SECOND(fractional_seconds_precision) 对于精确数值,规定有缺省值:年和日是两位数,若干分之一秒是六位数。 时间间隔的大小由INTERVAL来表示,后面紧接一个放在单引号中的表达式,以及用来解释该表达式的文字。用YEAR TO MONTH表示时间间隔大小时要在年和月之间用一个连字符(-) 连接。而DAY TO SECOND表示时间间隔大小时要在日和时间之间用一个空格连接。举个例子来说,下面是2年6个月的时间间隔的表示方法: INTERVAL 2-6 YEAR TO MONTH 下面的例子表示3天12个小时30分钟6.7秒: INTERVAL 3 12:30:06.7 DAY TO SECOND(1) 时间间隔可以为正,也可以为负。它们可以从各种TIMESTAMP数据类型中加上或者减去,从而得到一个新的TIMESTAMP数据类型。它们之间也可以做加减运算得到新的时间间隔。 列表A说明了怎样创建一个表格来记录一个事件的开始时间和持续时间,如实验等。数据被收集以后,SQL中内置的摘要函数不需要与原始单位秒进行相互转换,就可以报告总的持续时间和平均持续时间。 列表A CREATE TABLE experiment (experiment_id NUMBER(9), experiment_desc VARCHAR2(80), experiment_start TIMESTAMP, experiment_duration INTERVAL DAY(1) TO SECOND(4) ); Table created. INSERT INTO experiment VALUES ( 1, Busted urban myth, 01-JUN-xx 02:00:00 PM, INTERVAL 1 2:31:15.1250 DAY(1) TO SECOND(4) ); 1 row created. col experiment_desc format a40 col experiment_start format a30 col experiment_duration format a20 SELECT * FROM experiment; EXPERIMENT_ID EXPERIMENT_DESC EXPERIMENT_START EXPERIMENT_DURATION 1 Busted urban myth 01-JUN-06 02.00.00.000000 PM +1 02:31:15.1250 Now pute the experiments ending time SELECT experiment_id, experiment_start, experiment_start + experiment_durationexperiment_end FROM experiment; EXPERIMENT_ID EXPERIMENT_START EXPERIMENT_END 1 01-JUN-06 02.00.00.000000 PM 02-JUN-06 04.31.15.125000000 PM 但遗憾的是, TO_CHAR函数中没有包括任何能够映射到各个时间间隔数据类型片段的格式模型。但是,你可以用新的EXTRACT函数来提取和合并这些片段。格式如下: EXTRACT(timepart FROM interval_expression) 列表B给出了一个运用这种方法的例子。 列表B SELECT EXTRACT(DAY FROM experiment_duration) | days, | EXTRACT (HOUR FROM experiment_duration) | hours, | EXTRACT (MINUTE FROM experiment_duration) | minutes Duration FROM experiment; DUR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未来五年包金板、片行业直播电商战略分析研究报告
- 未来五年网络切换器企业数字化转型与智慧升级战略分析研究报告
- 未来五年开沟机(开渠用)行业直播电商战略分析研究报告
- 未来五年IC卡读写机具企业ESG实践与创新战略分析研究报告
- 未来五年企业孵化器企业数字化转型与智慧升级战略分析研究报告
- 公益活动捡垃圾
- 消化道肿瘤病人的护理
- 2025秋季吉林长春市东北师范大学地理科学学院学期专任教师招聘1人参考笔试题库及答案解析
- 2025重庆建工集团股份有限公司招聘2人参考笔试试题及答案解析
- 带瘤生存科普
- 电驱系统团队介绍
- 2025年7月中央电大本科《知识产权法》期末考试试题及答案
- Unit 6 Plan for Yourself Section B 2a-2c 课件 2025-2026学年人教版八年级英语上册
- 2025年网约车平台合作协议(2025年)
- 2025年《毒理学》知识考试题库及答案解析
- 2025年中国水果产业发展研究报告
- 检验科临床实验室质控流程
- 肿瘤患者家属沟通技巧提升方案
- 扩展语段压缩语段课件
- 2025高三英语高考词汇必背3500词
- 2025年国家开放大学《学前教育概论》期末考试复习试题及答案解析
评论
0/150
提交评论