日期和时间的存储与处理.ppt_第1页
日期和时间的存储与处理.ppt_第2页
日期和时间的存储与处理.ppt_第3页
日期和时间的存储与处理.ppt_第4页
日期和时间的存储与处理.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、日期和时间的存储与处理,上面的日期的格式是DD-MON-YY,日期在数据库里面的存储是固定格式的,不会随着你的参数的改变而改变。 这个参数影响主要在两个方面: 1、输入时如何确认你的输入字符串的日期格式 2、输出时如何显示你的输出日期格式,使用sysdate测试一下当前数据库的日期格式,使用DATE以后,后面的格式必须使用ANSI标准格式:YYYY-MON-DD,使用TO_CHAR()和TO_DATE()转换函数 TO_CHAR(x,format) TO_DATE(x,format) TO_CHAR(x,format) 将时间值转换为字符串(前面已经讲过将数字转换为字符串,MONTH是大写的月

2、份的全称,使用TO_DATE()将字符串转换为日期格式,按照我们指定的格式来识别字符串为日期格式,然后按照默认的日期格式进行输出,组合使用to_char和to_date函数,设置默认的日期格式 前面我们已经演示了如何修改NLS_DATE_FORMAT参数,同时也演示了如何修改SESSION的NLS_DATE_FORMAT参数。 Oracle对YY格式的解释 如果格式采用的是YY,那么oracle就采用数据库服务器当前的世纪来填充这个YY的世纪。 例如目前数据库服务器的时间是2009,那么YY 75就表示2075(有可能本意是1975),因此建议还是采用YYYY的格式,使用时间值函数 ADD_M

3、ONTHS()函数 ADD_MONTHS(x,y)函数用于计算x加上y个月的结果,如果y是负数,那么表示减去y个月,LAST_DAY函数用于计算包含x的月的最后一天,MONTHS_BETWEEN(,NEXT_DAY(x,day)函数 这个函数返回从x开始下一个day的日期,ROUND(x,unit)函数 用于对x进行取整,默认情况下x取整为最近的一天。 YYYY表示为取整为最近一年的第一天,如果是以YYYY来进行round,那么就看月份,如果月份是下半年,那么就取整到下一年。 如果是以MM来进行round,那么就看日期,如果日期是上半月,那么就取整到这个月。 如果说是以HH24来进行取整,那么

4、就看分钟数,取整到最近的小时。 总是取整到最近的时间点,TRUNC()函数 ROUND总是取整到最近的年份、月份、日期、小时等 TRUNC总是裁断到本年、本月、本日等等 两者都是到开始时间,理解时区 Oracle 9i引入了一种新的特性,可以表示不同的时区。 时区是当地时间与英格兰格林威治时间的时差,格林威治时间过去称为GMT,现在称为UTC。 时区可以使用时差来表示,也可以使用名字来表示。 时差的表示采用+|-HH:MI. 例如: -07:00、+02:15 使用时区名表示,例如: PST(太平洋标准时间)、UTC(东部标准时间,数据库时区和会话时区 访问的数据库所在的时区可能与本地时区不同

5、:分被称为数据库时区和会话时区,数据库时区,默认情况下数据库时区等于会话时区,会话时区覆盖数据库时区,查看会话时区中的当前时间,连接的是同一个数据库,但是会话时区不同,查看不同时区相对格林威治的时区差,获取时区名,将一个时间值从PST转换到EST。 EST比PST早3个小时,使用时间戳 Oracle 9i中引入了时间戳的概念。 时间戳可以存储世纪、4位年、月、日、时(24小时制)、分、秒 时间戳的特点: 1、可以存储秒的小数位 2、可以存储时区,1、TIMESTAMP(seconds_precision) 时间戳存储世纪、4位年、月、日、时(24小时制)、分、秒 seconds_precisi

6、on为可选参数,从0-9,默认值是6,表示秒的小数点右边可以存储6位数字。如果超出这个精度,该小数将被取整。 2、 TIMESTAMP(seconds_precision)WITH TIME ZONE 扩展了TIMESTAMP,用于存储时区。 3、 TIMESTAMP(seconds_precision) WITH LOCAL TIME ZONE 扩展了TIMESTAMP,将给定的时间值转换为数据库的本地时区,这个表记录了客户购买记录,其中made_on就是一个TIMESTAMP的列,INSERT INTO purchases_with_timestamp values (1,1,TIMEST

7、AMP 2005-05-13 07:15:31.1234); TIMESTAMP关键字和前面的DATE类似,后面的时间格式必须符合ANSI标准 YYYY-MON-DD HH24:MI:SS.SSSSSSSSS,TIMESTAMP 2005-05-13 07:15:31 -07:00 或者 TIMESTAMP 2005-05-13 07:15:31 PST,插入数据时带时区,显示的时候也照样需要带时区,TIMESTAMP WITH LOCAL TIME ZONE 存储的时间被转换为了数据库的本地时区时间戳。 显示的时候被显示为当前会话的时区设置。 假设数据库的时区是PST(-7:00),向数据库

8、中存储下面的时间戳: 2005-05-13 07:15:30 EST 由于EST比UTC晚4个小时,因此EST与PST之间差3个时区,从时间戳中减去3个小时。 2005-05-13 04:15:30,假设当前的会话时区就是PST,如果当前的会话时区是EST,那么这个时间就是04,1、当前会话的时间和会话时区 timestamp with time zone类型 2、当前会话时区的当前时间 timestamp 3、数据库的当前时间和市区 timestamp with time zone类型,extract从x中提取年、月、日、时、分、秒、时区,TO_TIMESTAMP(x,format) 用于将

9、字符串x转换为一个TIMESTAMP类型,使用时间间隔 Oracle 9i引入了一种新的特性,可以用来存储时间间隔(time interval),时间间隔的例子包括: 1、1年零3个月 2、25个月 3、-3天5小时16分 4、1天7小时 5、-56小时,INTERVAL YEAR TO MONTH类型 用来存储单位为年和月的时间间隔,INTERVAL +|-y-m YEAR(years_precision) TO MONTH INTERVAL 1 YEAR -时间间隔为1年 INTERVAL 11 MONTH -时间间隔为11个月 INTERVAL 14 MONTH -时间间隔为14个月 I

10、NTERVAL 1-3 YEAR TO MONTH -时间间隔为1年零3个月 INTERVAL 0-5 YEAR TO MONTH -时间间隔为0年5个月 INTERVAL 123 YEAR(3) TO MONTH -时间间隔为123年,精度为3 INTERVAL -1-5 YEAR TO MONTH -时间间隔为负数,值为1年零5个月 INTERVAL 1234 YEAR -时间间隔无效,精度最多包含3位数字,INSERT INTO coupons values(1,$1 off Z Files,INTERVAL 1 YEAR,INTERVAL DAY TO SECONDS类型,可以存储单位

11、为天和秒的时间间隔 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 MONUTE -时间间隔为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秒 INTERVAL 3 2:00:45 DAY TO SECOND -时间间隔为3天2小时45秒 INTERVAL -3 2:25:45 DAY TO SECOND -时间间隔为负数 INTERVAL 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论