程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle中TIMESTAMP的幾種類型介紹與實例

Oracle中TIMESTAMP的幾種類型介紹與實例

編輯:關於Oracle數據庫

TIMESTAMP的幾種類型比較

TIMESTAMP

時間戳類型,與date的區別在於,date不能精確到毫秒,而timestamp可以精確到毫秒,毫秒的位數為0-9位,默認為6位。

SQL> select tp from timestamp_test;
TP
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE 與 TIMESTAMP的區別在於,前者輸出顯示攜帶存入該時間值的數據庫時區,後者輸出不攜帶時區。

SQL> select tp_tz from timestamp_test;
TP_TZ
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午 +08:00

TIMESTAMP WITH LOCAL TIME ZONE與TIMESTAMP的區別在於,前者的輸出受時區影響,會跟著時區的變化而變化,而後者存入數據庫後將不受時區影響。即前者以數據庫本地時區保存數據,輸出時將轉換成客戶端時區輸出。

SQL> select tp_l_tz from timestamp_test;
TP_L_TZ
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午

實戰演練

# 創建timestamp_test測試表
SQL> create table timestamp_test(dt date,tp timestamp(6),tp_tz timestamp(6) with time zone,tp_l_tz timestamp(6) with local time zone);
Table created
# 在測試表中添加數據
SQL> insert into timestamp_test values(sysdate,sysdate,sysdate,sysdate);
1 row inserted
SQL> commit;
Commit complete
# 查看數據庫的時區和當前會話的時區
SQL> select dbtimezone,sessiontimezone from dual;
DBTIMEZONE SESSIONTIMEZONE
---------- ---------------------------------------------------------------------------
+00:00   +08:00
# 查看當前時間
SQL> select sysdate from dual;
SYSDATE
-----------
2016/3/1 9:
# 查看測試表的數據
SQL> select * from timestamp_test;
DT     TP                                        TP_TZ                                      TP_L_TZ
----------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2016/3/1 9: 01-3月 -16 09.22.33.000000 上午                         01-3月 -16 09.22.33.000000 上午 +08:00                      01-3月 -16 09.22.33.000000 上午
# 修改當前會話的時區
SQL> alter session set time_zone='+10:00';
Session altered
# 查看當前會話時區修改後的測試表的數據
SQL> select dbtimezone,sessiontimezone from dual;
DBTIMEZONE SESSIONTIMEZONE
---------- ---------------------------------------------------------------------------
+00:00   +10:00
SQL> select * from timestamp_test;
DT     TP                                        TP_TZ                                      TP_L_TZ
----------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
2016/3/1 9: 01-3月 -16 09.22.33.000000 上午                         01-3月 -16 09.22.33.000000 上午 +08:00                      01-3月 -16 11.22.33.000000 上午
Oracle的備份與恢復

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved