KingbaseES timestamp 和 timestamptz 差異比較


KingbaseES 提供兩種存儲時間戳的數據類型: 不帶時區的 TIMESTAMP 和帶時區的 TIMESTAMPTZ。

  • TIMESTAMP 數據類型可以同時存儲日期和時間,但它不存儲時區。這意味着,當修改了數據庫服務器所在的時區時,它里面存儲的值不會改變。
  • TIMESTAMPTZ 數據類型在存儲日期和時間的同時還能正確處理時區。在向 TIMESTAMPTZ 字段插入值的時候,KES 默認認為時間是當前時區。當插入的數據是非當前時區時,KES 會把存儲在其中的值轉換成數據庫服務器 TIMEZONE 參數所在的時區。

TIMESTAMP 和 TIMESTAMPTZ 都使用8字節存儲空間。例子如下:

INSERT INTO tz_test(ts, tstz) VALUES('2016-06-22 19:10:25', '2016-06-22 19:10:25' );
INSERT INTO tz_test(ts, tstz) VALUES(sysdate, sysdate );
INSERT INTO tz_test(ts, tstz) VALUES('2016-06-22 19:10:25-07', '2016-06-22 19:10:25-07' );

test=# select * from tz_test;
ts                   | tstz
---------------------+------------------------
2016-06-22 19:10:25  | 2016-06-22 19:10:25+08
2021-01-06 21:31:04  | 2021-01-06 21:31:04+08
2016-06-22 19:10:25  | 2016-06-23 10:10:25+08

test=# show timezone;
TimeZone
---------------
Asia/Shanghai

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM