1. 程式人生 > 其它 >KingbaseES timestamp 和 timestamptz 差異比較

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

  

KINGBASE研究院