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

2014-11-24 15:51:21 · 作者: · 浏览: 2
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 时,将放弃该偏移。仅支持转换到字符串、日期或日期时间类型,或者从这些类型转换。