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; 
/ 

 CSDN:程序猿 寄语:
1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。
3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。
4、程序不是年轻的专利,但是,他属于年轻。
5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。
6、一个好汉三个帮,程序员同样如此。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值