好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle PL / SQL TIMESTAMP数据类型

数据类型TIMESTAMP存储年,月,日,小时,分钟和秒。

语法是:

 TIMESTAMP[(precision) 
 

其中精度指定秒字段的小数部分中的数字数。

默认值为6。

默认时间戳格式由Oracle初始化参数NLS_TIMESTAMP_FORMAT设置。

 

 DECLARE 
  checkout TIMESTAMP(3); 
BEGIN 
  checkout := '22-JUN-2022 07:48:53.275'; 
  DBMS_OUTPUT.PUT_LINE( TO_CHAR(checkout)); 
END; 
/  

 

实例2

以下代码显示如何使用SCN_TO_TIMESTAMP和TIMESTAMP_TO_SCN函数来操作TIMESTAMP。

 DECLARE
  right_now  TIMESTAMP; 
  yesterday  TIMESTAMP; 
  sometime   TIMESTAMP; 
  i_scn1       INTEGER; 
  i_scn2       INTEGER; 
  i_scn3       INTEGER; 
BEGIN 
  right_now := SYSTIMESTAMP; 
  i_scn1 := TIMESTAMP_TO_SCN(right_now); 
  DBMS_OUTPUT.PUT_LINE(i_scn1); 
 
  yesterday := right_now - 1; 
  i_scn2 := TIMESTAMP_TO_SCN(yesterday); 
  DBMS_OUTPUT.PUT_LINE(i_scn2); 
 
  i_scn3 := (i_scn1 + i_scn2) / 2; 
  sometime := SCN_TO_TIMESTAMP(i_scn3); 
  DBMS_OUTPUT.PUT_LINE (i_scn3);
  DBMS_OUTPUT.PUT_LINE (sometime); 
END; 
/  

 

TIMESTAMP WITH TIME ZONE数据类型

TIMESTAMP WITH TIME ZONE包含时区位移。

时区位移是本地时间和协调世界时间(UTC)之间的格林威治标准时间(GMT)之间的差。

语法是:

 TIMESTAMP[(precision)] WITH TIME ZONE 
 

precision指定秒字段的小数部分中的数字位数,范围为0..9。

默认值为6。

具有时区格式的默认时间戳由Oracle初始化参数NLS_TIMESTAMP_TZ_FORMAT设置。

以下代码显示如何将Literal分配给TIMESTAMP WITH TIME ZONE变量。

 DECLARE 
  logoff TIMESTAMP(3) WITH TIME ZONE; 
BEGIN 
  logoff := '10-OCT-2004 09:42:37.114 AM +02:00'; 
  DBMS_OUTPUT.PUT_LINE (TO_CHAR(logoff)); 
END; 
/  

例如,以下文字都表示相同的时间。

 TIMESTAMP '15-APR-2014 8:00:00 -8:00' 
TIMESTAMP '15-APR-2014 8:00:00 US/Pacific' 
TIMESTAMP '31-OCT-2014 01:30:00 US/Pacific PDT' 
 

时区的可用名称位于静态数据字典视图V $ TIMEZONE_NAMES的TIMEZONE_REGION和TIMEZONE_ABBR列中。

 

具有本地时区的TIMESTAMP数据类型

TIMESTAMP WITH LOCAL TIME ZONE包括时区位移。

时区位移是本地时间和协调世界时间之间的差。

我们可以使用命名的时区,如TIMESTAMP WITH TIME ZONE一样。

语法是:

 TIMESTAMP[(precision)] WITH LOCAL TIME ZONE 
 

precision指定秒字段的小数部分中的位数。

将值插入数据库列时,该值将归一化为数据库时区,并且时区位移不会存储在列中。

当您检索该值时,Oracle会在您的本地会话时区中返回该值。

以下代码显示如何使用LOCAL TIME ZONE分配给TIMESTAMP。

 DECLARE 
  logoff  TIMESTAMP(3) WITH LOCAL TIME ZONE; 
BEGIN 
  logoff := '10-OCT-2014 10:42:37.111 AM '; 
  DBMS_OUTPUT.PUT_LINE(TO_CHAR(logoff)); 
END; 
/  

查看更多关于Oracle PL / SQL TIMESTAMP数据类型的详细内容...

  阅读:44次

上一篇

下一篇

第1节:Oracle PL / SQL CASE 语句    第2节:Oracle PL / SQL CHAR VARCHAR2    第3节:Oracle PL / SQL INTERVAL数据类型    第4节:Oracle PL / SQL loop循环    第5节:Oracle PL / SQL for loop循环    第6节:Oracle PL / SQL goto 语句    第7节:Oracle PL / SQL update更新数据    第8节:Oracle PL / SQL包    第9节:Oracle PL / SQL 存储过程    第10节:Oracle PL / SQL 函数    第11节:Oracle PL / SQL变量    第12节:Oracle PL / SQL变量范围    第13节:Oracle PL / SQL TIMESTAMP数据类型    第14节:Oracle PL / SQL 聚合函数大全    第15节:Oracle PL/SQL Views 视图    第16节:Oracle PL / SQL 表 table    第17节:Oracle PL/SQL Delete删除数据    第18节:Oracle PL/SQL Select 查询    第19节:Oracle PL/SQL 教程    第20节:Oracle PL / SQL注释    第21节:Oracle PL / SQL触发器Triggers    第22节:Oracle PL / SQL变量值    第23节:Oracle PL / SQL块结构    第24节:Oracle PL / SQL关联数组    第25节:Oracle PL / SQL文字    第26节:Oracle PL / SQL参数    第27节:Oracle PL / SQL运算符    第28节:Oracle PL/SQL NUMBER    第29节:Oracle PL/SQL if 语句    第30节:Oracle PL/SQL while循环    第31节:Oracle PL / SQL约束    第32节:Oracle PL / SQL 插入insert    第33节:Oracle PL / SQL数据类型    第34节:PL / SQL 分析函数大全