TIMESTAMP的幾種類型比較
TIMESTAMP
時間戳類型,與date的區(qū)別在于,date不能精確到毫秒,而timestamp可以精確到毫秒,毫秒的位數(shù)為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的區(qū)別在于,前者輸出顯示攜帶存入該時間值的數(shù)據(jù)庫時區(qū),后者輸出不攜帶時區(qū)。
SQL> select tp_tz from timestamp_test;
TP_TZ
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午 +08:00
TIMESTAMP WITH LOCAL TIME ZONE與TIMESTAMP的區(qū)別在于,前者的輸出受時區(qū)影響,會跟著時區(qū)的變化而變化,而后者存入數(shù)據(jù)庫后將不受時區(qū)影響。即前者以數(shù)據(jù)庫本地時區(qū)保存數(shù)據(jù),輸出時將轉(zhuǎn)換成客戶端時區(qū)輸出。
SQL> select tp_l_tz from timestamp_test;
TP_L_TZ
--------------------------------------------------------------------------------
01-3月 -16 09.22.33.000000 上午
實戰(zhàn)演練
# 創(chuàng)建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
# 在測試表中添加數(shù)據(jù)
SQL> insert into timestamp_test values(sysdate,sysdate,sysdate,sysdate);
1 row inserted
SQL> commit;
Commit complete
# 查看數(shù)據(jù)庫的時區(qū)和當前會話的時區(qū)
SQL> select dbtimezone,sessiontimezone from dual;
DBTIMEZONE SESSIONTIMEZONE
---------- ---------------------------------------------------------------------------
+00:00 +08:00
# 查看當前時間
SQL> select sysdate from dual;
SYSDATE
-----------
2016/3/1 9:
# 查看測試表的數(shù)據(jù)
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 上午
# 修改當前會話的時區(qū)
SQL> alter session set time_zone='+10:00';
Session altered
# 查看當前會話時區(qū)修改后的測試表的數(shù)據(jù)
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的備份與恢復
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
您可能感興趣的文章:- oracle日期時間型timestamp的深入理解
- oracle SCN跟TIMESTAMP之間轉(zhuǎn)換
- oracle中to_date詳細用法示例(oracle日期格式轉(zhuǎn)換)
- ORACLE時間函數(shù)(SYSDATE)深入理解
- Oracle to_date()函數(shù)的用法介紹
- sqlserver和oracle中對datetime進行條件查詢的一點區(qū)別小結(jié)
- sqlserver中delete、update中使用表別名和oracle的區(qū)別
- oracle中UPDATE nowait 的使用方法介紹
- ORACLE SQL-UPDATE、DELETE、INSERT優(yōu)化和使用技巧分享
- Oracle date如何比較大小分析