




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版水电暖工程绿色施工劳务承包合同示范文本
- 2025版微信小程序商城用户行为分析合作协议
- 2025年淘宝店铺美工设计及市场推广合作协议
- 2025版信用修复与再认证服务合同
- 心理健康服务在社区2025年推广中的心理健康服务与社区心理健康服务需求研究报告
- 2025年城市轨道交通项目土地租赁与承包合同
- 2025年文化中心临时活动场地出租合同
- 2025版区域内授权经销商销售合作协议
- 2025版生殖医学手术医疗事故赔偿及生育保障协议
- 2025版淘宝店铺店铺会员体系设计与运营合同
- 部编版三年级语文上册说课标说教材
- 医德医风课件培训宣传
- 【艾瑞咨询】2024年中国健康管理行业研究报告494mb
- 2025java中高级面试题及答案
- 偷盗自愿赔偿协议书
- 民航飞行员招飞心理测试题及答案
- 《物业管理条例》教学课件
- 篮球课件介绍
- 2024艺考乐理试题及答案
- 资产回收合同协议模板
- 基层司法所规范化建设
评论
0/150
提交评论