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

TIMESTAMP 数据类型

TIMESTAMP 数据类型(Date的子类) 它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息。 SELECT sysdate,systimestamp FROM dua...
  • guorun18
  • guorun18
  • 2015-10-21 11:15:12
  • 3574

mysql中timestamp数据类型

1:新建该数据类型 CREATE TABLE `test` (   `name` int(8) NOT NULL,   `time_oper` timestamp NOT NUL...
  • lixingying567
  • lixingying567
  • 2017-07-07 15:26:38
  • 228

MySQL的Date,DateTime,TimeStamp和Time数据类型

DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:0...
  • zwj1030711290
  • zwj1030711290
  • 2016-12-06 10:09:29
  • 1562

SqlServer的 timestamp数据类型

--时间戳类型和bigint互相转化示例:by jinjazzset nocount on--申明3个时间戳declare @timeFlag1 bigintdeclare @timeFlag2 bi...
  • jinjazz
  • jinjazz
  • 2007-12-03 19:52:00
  • 3066

Hibernate错误记录(二): 将 nvarchar 值转换为 JDBC 数据类型 TIMESTAMP 时发生错误。

Hibernate结合SQlSever2012做查询操作,在出生日期发生的类型转换错误: 以下是数据库设计: 如图birthday数据类型为date; 以下是报错信息: Caused ...
  • mifan649191
  • mifan649191
  • 2017-08-17 22:57:41
  • 629

Derby数据库中实现的基本的SQL数据类型

表 1. Derby 中的基本整数数据类型 枚举值 数据类型 最小值 最大值 示例 说明 0 SMALL...
  • soa20100121soft
  • soa20100121soft
  • 2012-07-09 14:20:58
  • 2725

数据库中timestamp,datetime,int时间类型区别

mysql中timestamp,datetime,int类型区别   int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mysql...
  • xcymorningsun
  • xcymorningsun
  • 2016-11-29 15:15:13
  • 3274

C#向oracle数据库中插入timestamp类型的值

在写插入sql语句时,用to_timestamp('s','yyyy-mm-dd hh24:mi:ss.ff')
  • wr6521941
  • wr6521941
  • 2014-10-16 10:01:00
  • 451

oracle日期时间数据类型与时间间隔数据类型讲解

  • 2011年04月06日 16:11
  • 347KB
  • 下载

Java中针对Timestamp数据类型操作

刚入门的新人初次接触到java.sql.Timestamp数据类型时,往往会遇到各种错误(类型转换失败、数据格式化失败),本篇博客主要通过一个对学生表的插入和查询案例介绍Timestamp类型。...
  • psp0001060
  • psp0001060
  • 2017-10-19 13:38:06
  • 1711
收藏助手
不良信息举报
您举报文章:TIMESTAMP数据类型-007
举报原因:
原因补充:

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