当前位置:操作系统 > Unix/Linux >>

[每日一题] OCP1z0-047 :2013-08-19 DATE TYPE

[每日一题] OCP1z0-047 :2013-08-19 DATE TYPE
 
 
 正确答案:A
如下操作:
1-d
(表示2年0个月)
gyj@MYDB>select interval '+02-00' year to month from dual;
 
INTERVAL'+02-00'YEARTOMONTH
---------------------------------------------------------------------------
+02-00
 
2-c
(TIMESTAMPWITH LOCAL TIME ZONE 显示的时候不带时区偏移量,以本地时区来显示时间)
gyj@MYDB> gyj@MYDB> SELECTCAST('17-JUN-03' AS TIMESTAMP WITH LOCAL TIME ZONE) FROM dual;
 
CAST('17-JUN-03'ASTIMESTAMPWITHLOCALTIMEZONE)
---------------------------------------------------------------------------
 
17-JUN-03 12.00.00.000000 AM
 
3-a
(TIMESTAMP WITHTIME ZONE 带有时区偏移量的值+08:00)
gyj@MYDB>select TO_TIMESTAMP_TZ('2009-07-15 08:00:00 -08:00', 'YYYY-MM-DD HH24:MI:SS.FFTZH:TZM') from dual;
 
TO_TIMESTAMP_TZ('2009-07-1508:00:00-08:00','YYYY-MM-DDHH24:MI:SS.FFTZH:TZM'
---------------------------------------------------------------------------
15-JUL-0908.00.00.000000000 AM +08:00
 
4-b(表示6天3小时30分16秒)
gyj@MYDB>select interval '+06 03:30:16.000000' day to second from dual;
 
INTERVAL'+0603:30:16.000000'DAYTOSECOND
---------------------------------------------------------------------------
+0603:30:16.000000
 
 
INTERVAL数据类型可以是年-月(YEAR-MONTH)时间间隔类型,也可以是天-时间(DAY- TIME)数据类型。这些类型可以用一个字来表示,如日、时,也可以用一个范围表示,如果HOUR TO SECOND格式。这也是使用字符串表示类型,而不是选择整数表示的原因:描述INTERVAL数据类型时需要使用标点分融各段信息。
  时间间隔数据的各个字段中,除了SECOND字段,其它字段都是整数类型,而且如果这些非SECOND字段不是和一个字段,其精度为2。不过,对于SECOND字段而言,在定义时可以指定<秒字段小数部分的精度>,该精度指定了SECOND字段小数部分的位数。当SECOND字段不是和一个字段时,其在小数点之前的精度为两位。构成时间间隔的这些字段也受到公元纪年的制约。
   ANSI/ISO标准时间间隔数据类型
YEAR:Years,constrained  by implementation  leading field prcision
MONTH:Monthswithin years constrained to  0-11
DAY:Days,constrained  by implementationleading field precision
HOUR:Hours withindays,constrained to  0-23
MINUTE:Minuteswithin hours,constrained to  0-59
SECOND:Secondwithin minutes,constrained to   0-59.999.
 
**********************************************************
 
INTERVAL YEAR TO MONTH数据类型
Oracle语法: 
INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}] 
 
该数据类型常用来表示一段时间差, 注意时间差只精确到年和月. precision为年或月的精确域, 有效范围是0到9, 默认值为2. 
 
eg: 
INTERVAL '123-2' YEAR(3) TO MONTH 
表示: 123年2个月,"YEAR(3)" 表示年的精度为3, 可见"123"刚好为3为有效数值, 如果该处YEAR(n), n<3就会出错, 注意默认是2. 
 
INTERVAL '123' YEAR(3) 
表示: 123年0个月 
 
INTERVAL '300' MONTH(3) 
表示: 300个月, 注意该处MONTH的精度是3啊. 
 
INTERVAL '4' YEAR 
表示: 4年, 同 INTERVAL '4-0' YEARTO MONTH 是一样的 
 
INTERVAL '50' MONTH 
表示: 50个月, 同 INTERVAL '4-2' YEAR TO MONTH 是一样 
 
INTERVAL '123' YEAR 
表示: 该处表示有错误, 123精度是3了, 但系统默认是2, 所以该处应该写成 INTERVAL '123' YEAR(3) 或"3"改成大于3小于等于9的数值都可以的
 
INTERVAL '5-3' YEAR TO MONTH + INTERVAL '20' MONTH = 
INTERVAL '6-11' YEAR TO MONTH 
表示: 5年3个月 + 20个月 = 6年11个月 
 
INTERVAL DAY TO SECOND数据类型 
 
Oracle语法: 
INTERVAL '{ integer | integer time_expr | time_expr }' 
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ] 
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] } 
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ] 
 
leading_precision值的范围是0到9, 默认是2. time_expr的格式为:HH[:MI[:SS[.n]]] or MI[:SS[.n]] or SS[.n], n表示微秒.
该类型与INTERVAL YEAR TOMONTH有很多相似的地方,建议先看INTERVAL YEAR TO MONTH再看该文. 
 
范围值: 
HOUR: 0 to 23 
MINUTE: 0 to 59 
SECOND: 0 to 59.999999999 
 
eg: 
INTERVAL '4 5:12:10.222' DAY TO SECOND(3) 
表示: 4天5小时12分10.222秒 
 
INTERVAL '4 5:12' DAY TO MINUTE 
表示: 4天5小时12分 
 
INTERVAL '400 5' DAY(3) TO HOUR 
表示: 400天5小时, 400为3为精度,所以"DAY(3)", 注意默认值为2. 
 
INTERVAL '400' DAY(3) 
表示: 400天 
 
INTERVAL '11:12:10.2222222' HOUR TO SECOND(7) 
表示: 11小时12分10.2222222秒 
 
INTERVAL '11:20' HOUR TO MINUTE 
表示: 11小时20分 
 
INTERVAL '10' HOUR 
表示: 10小时 
 
INTERVAL '10:22' MINUTE TO SECOND 
表示: 10分22秒 
 
INTERVAL '10' MINUTE 
表示: 10分 
 
INTERVAL '4' DAY 
表示: 4天 
 
INTERVAL '25' HOUR 
表示: 25小时 
 
INTERVAL '40' MINUTE 
表示: 40分 
 
INTERVAL '120' HOUR(3) 
表示: 120小时 
 
INTERVAL '30.12345' SECOND(2,4) 
表示: 30.1235秒, 因为该地方秒的后面精度设置为4, 要进行四舍五入. 
 
INTERVAL '20' DAY - INTERVAL '240' HOUR = INTERVAL '10-0' DAY TO SECOND 
表示: 20天 - 240小时 = 10天0秒
TIMESTAMPWITH TIME ZONE 数据类型
存储一个具有时区偏移的时间点。
语法
 
TIMESTAMP WITH TIME ZONE
注释
 
TIMESTAMP WITHTIME ZONE 值包含年、月、日、小时、分钟、秒、秒的小数部分以及在协调通用时间(CoordinatedUniversal Time,简称 UTC)前后的分钟数。小数存储到 6 个小数位。
应用程序以字符串形式检索 TIMESTAMP WITH TIME ZONE 值所使用的格式由 timestamp_with_time_zone_format 选项设置控制。例如,根据timestamp_with_time_zone_format 选项设置的不同,TIMESTAMP WITHTIME ZONE 值2010/04/01T23:59:59.999999-6:00 可以2010/04/01 23:59:59 -06:00 或April 1, 2010 23:59:59.999999-06:00 形式返回给应用程序。
TIMESTAMP WITHTIME ZONE 值需要 10 个存储字节。
尽管 TIMESTAMP WITH TIME ZONE 数据类型的可接受日期范围与 DATE 类型相同(从 00
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,