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

2014-11-24 15:51:21 · 作者: · 浏览: 3
[每日一题] 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