TIMESTAMP数据类型-007

原创 2007年05月06日 23:51:00

以下代码的运行环境:oracle9.2,pl/sql developer

一、TIMESTAMP

TIMESTAMP数据类型,是DATE的扩展,可以存储年、月、日、小时、分钟、秒,同时还可以存储秒的小数部分。

语法为:TIMESTAMP [(fractional_seconds_precision)]

fractional_seconds_precision为可选项,指定秒的小数部分的精度,取值范围为0-9,默认值为6。

示例代码:

declare
 v_inteval timestamp(7);
begin
 v_inteval := TIMESTAMP'2007-05-05 23:34:45.1234567';                 
 dbms_output.put_line(v_inteval);
end;

结果为:05-5月 -07 11.34.45.1234567 下午。

说明:如果精度为5,则结果为05-5月 -07 11.34.45.12346 下午;如果精度为8,则结果为05-5月 -07 11.34.45.12345670 下午。

二、TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE数据类型是可以指定时区的TIMESTAMP。时区的偏移是指本地时间和格林尼治(UTC)时间之间的差异(小时和分钟)。

语法为:TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

fractional_seconds_precision为可选项,指定秒的小数部分的精度,取值范围为0-9,默认值为6。

如果2个TIMESTAMP WITH TIME ZONE,相对于UTC代表相同的时间,则认为这2个TIMESTAMP WITH TIME ZONE是相等的,而不管这2个TIMESTAMP WITH TIME ZONE所代表的具体时间,例如:TIMESTAMP '1999-04-15 8:00:00 -8:00'和TIMESTAMP '1999-04-15 11:00:00 -5:00'是相等的,虽然他们分别表示当地的8点和11点,其中-8:00以及-5:00,表示相对UTC的偏移量。

在上例中,也可以将偏移量替换成时区地区(TRZ,time zone region),例如,上例中的TIMESTAMP '1999-04-15 8:00:00 -8:00',与TIMESTAMP '1999-04-15 8:00:00 US/Pacific'是相等的。

为了削除因为夏令时引起的时间歧义,同时使用TRZ,以及和TRZ相对应的TRD来确保返回正确的时间,例如:TIMESTAMP '1999-10-29 01:30:00 US/Pacific PDT'。如果没有使用TZD元素,并且ORACLE的ERROR_ON_OVERLAP_TIME session参数设置为TRUE,则ORACLE会返回错误。如果ERROR_ON_OVERLAP_TIME session参数设置为FALSE,则ORACLE认为该TIMESTAMP WITH TIME ZONE为标准时间。

代码一:

declare
 v_inteval timestamp(7) with time zone;
begin
 v_inteval := TIMESTAMP'2007-05-05 23:34:45.1234567';                 
 dbms_output.put_line(v_inteval);
end;

结果为:05-5月 -07 11.34.45.123456700 下午 +08:00。

说明:该结果与(一)中的代码结果相比,多了一个时区偏移量+08:00,说明该时间为北京时间。

代码二:

declare
 v_inteval_1 timestamp(3) with time zone;
  v_inteval_2 timestamp(3) with time zone;
begin
 v_inteval_1 := TIMESTAMP'1999-04-15 8:00:00 -8:00';
  v_inteval_2 := TIMESTAMP'1999-04-15 11:00:00 -5:00';
  if(v_inteval_1=v_inteval_2)  then            
  dbms_output.put_line('v_inteval_1=v_inteval_2');
  else
   dbms_output.put_line('v_inteval_1!=v_inteval_2');
  end if;
end;

结果为:v_inteval_1=v_inteval_2。

三、TIMESTAMP WITH  LOCAL TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE数据类型也是可以指定时区的TIMESTAMP,和TIMESTAMP WITH TIME ZONE不同的是,他存储的是数据库的时区,时区偏移量并不存储。当用户提交数据,ORACLE返回的是用户的本地所在的时区。时区的偏移是指本地时间和格林尼治(UTC)时间之间的差异(小时和分钟)。TIMESTAMP WITH LOCAL TIME ZONE主要用于CS二层系统应用。

语法:TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

007_Java数据类型转换

基本数据类型的转换 自动类型转换(小==>大) l 自动类型转换(不考虑boolean):容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为: l 有多种类型的数据混合运算时,...

web前端-JavaScript 数据类型 -007

字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。JavaScript 拥有动态类型Java...

Java千百问_06数据结构(007)_String属于基本数据类型吗

点击进入_更多_Java千百问1、String属于基本数据类型吗首先要明确的是,String不是基本数据类型,它继承于Object,是一个jdk提供的字符串类。 但是,String和其他对象相比,j...

ORACLE DATE和TIMESTAMP数据类型的比较(一)

DATE数据类型      这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型。它可以存储月,年,日,世纪,时,分和秒。它典型地用来表示什么时候事情已经发生或将要发生...

Oracle中Date和Timestamp数据类型的比较

时间:2008-05-30 11:43:37 来源: 作者: 点击量:388 [ 繁體中文 ] Date数据类型 这个数据类型我们实在是太熟悉了,当...

SQL Server timestamp 数据类型

在SQL Server中联机丛书是这样说的: SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发...

Sqlserver:timestamp数据类型

在SQL Server中联机丛书是这样说的: SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的...

[记录]ORACLE:DATE和TIMESTAMP数据类型的比较

TIMESTAMP数据的格式化显示和DATE 数据一样。注意,to_char函数支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型。这已经清楚表明了在当两个时间的差别极...

MySQL数据库的数据类型timestamp的自动更新

自动更新:1、列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。 2、列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。 (注意一个UPDATE设置一个列为它...

ORACLE DATE和TIMESTAMP数据类型的比较

引用:http://blog.csdn.net/enhydraboy/archive/2003/07/30/19706.aspx 原作者:James Koopmann   如果你想在ORACLE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)