您的位置:首页 > 其它

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

2013-08-19 22:25 585 查看
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10086965



正确答案: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.

******************************************************************************************
参考转载:http://hi.baidu.com/graceyan/item/c6582530a9c3718af4e4ada8 http://dcx.sybase.com/1201/zh/dbreference/timestamp-with-timezone.html

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 类型相同(从 0001 年到 9999 年),但 TIMESTAMP WITH TIME ZONE 日期类型的有用范围是从 1600-02-28 23:59:59 到 7911-01-01 00:00:00。将不保留早于或晚于此范围的 TIMESTAMP WITHTIME ZONE 值的小时和分钟部分。
不可将 TIMESTAMP WITH TIME ZONE 用于计算列或实例化视图中,因为控制time_zone_adjustment 选项的值在基于位置和年份时间的连接之间有所差异。
当两个 TIMESTAMP WITH TIME ZONE 值以 UTC 表示相同时刻时,则认为它们是相同的,无论是否应用了 TIME ZONE 偏移。例如,因为认为结果是相同的,所以下列语句返回Yes
IF CAST('2009-07-15 08:00:00 -08:00' AS TIMESTAMP WITH TIME ZONE) =
CAST('2009-07-15 11:00:00 -05:00' AS TIMESTAMP WITH TIME ZONE) THEN
SELECT  'Yes'
ELSE
SELECT 'No'
END IF;
如果省略 TIMESTAMP WITH TIME ZONE 值的时区偏移,则其缺省为客户端的当前 UTC 偏移,无论时间戳是否以标准时间或夏令时表示日期和时间。例如,如果位于东部标准时区的客户端在夏令时生效时执行以下语句,则会返回适用于大西洋标准时区(从 UTC 减去 4 小时)的时间戳。
SELECT CAST('2009/01/30 12:34:55' AS TIMESTAMP WITH TIME ZONE);
· 将 TIMESTAMP WITHTIME ZONE 与其它数据类型进行比较 不建议使用不具有时区的时间戳比较 TIMESTAMP WITHTIME ZONE 值,因为客户端的缺省时区偏移会因客户端的地理位置和年份时间而不同。
执行以下语句为客户端确定当前时区偏移(以分钟为单位):
SELECT CONNECTION_PROPERTY( 'TimeZoneAdjustment' );
注意在 UltraLite 数据库中,不支持 TimeZoneAdjustment 连接属性。
· 转换到 TIMESTAMP WITHTIME ZONE 或从 TIMESTAMP WITH TIME ZONE 转换将 TIMESTAMP值转换为 TIMESTAMP WITHTIME ZONE 时,该连接的time_zone_adjustment 设置用于结果中的时区偏移。也就是说,对于该连接而言,将该值视为本地值。将 TIMESTAMP WITHTIME ZONE 值转换为 TIMESTAMP 时,将放弃该偏移。仅支持转换到字符串、日期或日期时间类型,或者从这些类型转换。

QQ:252803295
学习交流QQ群:
DSI&Core Search Ⅰ 群:127149411(技术:已满)
DSI&Core Search Ⅱ 群:177089463(技术:未满)
DSI&Core Search Ⅲ 群:284596437(技术:未满)
DSI&Core Search Ⅳ 群:192136702(技术:未满)
DSI&Core Search Ⅴ 群:285030382(闲聊:未满)

MAIL:oracledba_cn@hotmail.com
BLOG: http://blog.csdn.net/guoyjoe
WEIBO:http://weibo.com/guoyJoe0218
ITPUB: http://www.itpub.net/space-uid-28460966.html
OCM: http://education.oracle.com/education/otn/YGuo.HTM
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据类型 DATE OCP1z0
相关文章推荐