[20200121]CURRENT_TIMESTAMP LOCALTIMESTAMP SYSTIMESTAMP的不同.TXT
[20200121]CURRENT_TIMESTAMP LOCALTIMESTAMP SYSTIMESTAMP的不同.TXT
--//別人的問題,實際上我自己也不知道:
--//我的環境定義如下:
$ set | grep NLS
NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'
NLS_TIME_TZ_FORMAT='HH24.MI.SSXFF TZH:TZM'
1.環境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.測試:
SCOTT@book> select current_timestamp ,systimestamp from dual ;
CURRENT_TIMESTAMP SYSTIMESTAMP
------------------------------------ ------------------------------------
2020-01-21 09:01:43.030480000 +08:00 2020-01-21 09:01:43.030475000 +08:00
SCOTT@book> select current_timestamp ,systimestamp,current_timestamp from dual ;
CURRENT_TIMESTAMP SYSTIMESTAMP CURRENT_TIMESTAMP
------------------------------------ ------------------------------------ ------------------------------------
2020-01-21 09:01:50.968273000 +08:00 2020-01-21 09:01:50.968265000 +08:00 2020-01-21 09:01:50.968273000 +08:00
--//不知道大家注意沒有,最後一個欄位先執行,看秒後面數值。(030475000<030480000)
--//而第2次執行,先執行第3個欄位的current_timestamp,但是第1個current_timestamp數值從第3個輸出值一致。
--//兩個都帶有時區,很明顯格式使用NLS_TIMESTAMP_TZ_FORMAT的定義。
--//連結:
SYSTIMESTAMP returns the system date, including fractional seconds and time zone, of the system on which the database
resides. The return type is TIMESTAMP WITH TIME ZONE.
CURRENT_TIMESTAMP returns the current date and time in the session time zone, in a value of data type TIMESTAMP WITH
TIME ZONE. The time zone offset reflects the current local time of the SQL session. If you omit precision, then the
default is 6. The difference between this function and LOCALTIMESTAMP is that CURRENT_TIMESTAMP returns a TIMESTAMP WITH
TIME ZONE value while LOCALTIMESTAMP returns a TIMESTAMP value.
SCOTT@book> select current_timestamp ,systimestamp,localtimestamp from dual ;
CURRENT_TIMESTAMP SYSTIMESTAMP LOCALTIMESTAMP
------------------------------------- ------------------------------------ -----------------------------
2020-01-21 09:07:52.129754000 +08:00 2020-01-21 09:07:52.129747000 +08:00 2020-01-21 09:07:52.129754000
SCOTT@book> select localtimestamp,systimestamp,current_timestamp from dual ;
LOCALTIMESTAMP SYSTIMESTAMP CURRENT_TIMESTAMP
----------------------------- ------------------------------------ ------------------------------------
2020-01-21 09:12:36.765938000 2020-01-21 09:12:36.765932000 +08:00 2020-01-21 09:12:36.765938000 +08:00
--//LOCALTIMESTAMP的格式受NLS_TIMESTAMP_FORMAT控制。
--//LOCALTIMESTAMP 的輸出與CURRENT_TIMESTAMP的輸出一樣(不包括時區部分,當前客戶時區與伺服器一致),也就是運算僅僅1次。
--//設定時區不一致看看。
SCOTT@book> alter session set time_zone='+0:00';
Session altered.
SCOTT@book> select localtimestamp,systimestamp,current_timestamp from dual ;
LOCALTIMESTAMP SYSTIMESTAMP CURRENT_TIMESTAMP
----------------------------- ------------------------------------ ------------------------------------
2020-01-21 01:17:05.667409000 2020-01-21 09:17:05.667403000 +08:00 2020-01-21 01:17:05.667409000 +00:00
--//注意看秒後面的數值,CURRENT_TIMESTAMP與LOCALTIMESTAMP存在轉換。一些細節自己慢慢體會。
--//注意一定注意要設定帶時區與不帶時區的格式,這樣看資料庫一些時間資訊才比較準確。
--//我自己在上面犯過一些錯誤。像連結http://blog.itpub.net/267265/viewspace-2152520/,如果不帶時區顯示,很容易出現歧義性。
NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF9 TZH:TZM'
--//可以不要後面9。FF9改成FF,這樣秒後面僅僅6位小數點,自己就是這樣設定的,為了測試設定FF9。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2674158/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL中的CURRENT_TIMESTAMPMySql
- 7.71 CURRENT_TIMESTAMP
- [20220610]對比表結構的不同.txt
- ON UPDATE CURRENT_TIMESTAMP請慎用
- [20221104]執行計劃一樣Plan hash value不同.txt
- [20190402]對比_mutex_wait_scheme不同模式cpu消耗.txtMutexAIScheme模式
- 教你如何使用MySQL中CURRENT_TIMESTAMP時間戳MySql時間戳
- 記一次線上問題 → 對 MySQL 的 ON UPDATE CURRENT_TIMESTAMP 的片面認知MySql
- 在Linux中,rsync 同步資料時,如何過濾出所有.txt的檔案不同步?Linux
- git 不同目錄用不同的配置Git
- 不同網站檢測到的ip不同網站
- 為不同專案指定不同的 PHP 版本PHP
- wordpress 不同的人看到不同的媒體庫
- 電話機器人在不同的行業有不同的應用場景和不同的效果機器人行業
- 不同層級的Android開發者的不同行為Android
- 微服務化的不同階段 Kubernetes 的不同玩法微服務
- 根據使用者的不同登入不同的頁面
- Tomcat 配置支援不同的域名訪問各自不同程式的配置方法Tomcat
- 不同資料夾使用不同的Git使用者Git
- Nginx 實戰-04-nginx 不同的地址訪問不同的服務Nginx
- 如何針對不同客戶給不同價格的設定?
- JPG轉TXT的教程
- [20180415]blob的插入.txt
- [20180416]clob的插入.txt
- 不同性別玩家對於遊戲環境的不同選擇遊戲
- 對不同角色使用者設定不同的系統首頁
- 【exp/imp不同版本】Oracle不同版本的exp/imp使用注意事項Oracle
- 不同精度孔的加工方案
- 為雷達圖中不同系列的資料使用不同的顏色
- Spring Security 實戰乾貨:如何實現不同的介面不同的安全策略Spring
- 類的方法,函式,同一個package不同.py檔案,不同package不同.py檔案————呼叫問題函式Package
- hibernate不同實體不同填充建立人
- 實現不同頁面不同頁首
- (39/60)不同路徑、不同路徑Ⅱ
- 湖泊和河流的成因有何不同?湖泊和水庫又有何不同?
- 為啥同樣的邏輯在不同前端框架中效果不同前端框架
- Qt設定根據編譯器不同連結不同的lib庫QT編譯
- 解決git 不同branch 下node_moudes不同步的問題Git