Timestamp是否可以插入UTC時間而不是本地時間(System_time_Zone)。Can Timestamp數據類型插入UTC時間而不是本地時間(System_time_Zone)
根據MySQL文檔 - 「MySQL將TIMESTAMP值從當前時區轉換爲UTC存儲,並從UTC返回到當前時區進行檢索。」
當我在timestamp數據類型中插入now()時,保存的值是與Datetime數據類型相同的本地時間。 datetime的日期值似乎是靜態的,但TimeZone會在更新會話時區時不斷更新。
MySQL Workbench 6.3查詢 - 我目前在EDT時區。
desc datedemo ;
--------------------------------------------------
| mydatetime | 'datetime' |
--------------------------------------------------
| mytimestamp |'timestamp' |
--------------------------------------------------
| utcdate | datetime |
--------------------------------------------------
SELECT @@global.time_zone, @@session.time_zone;
--------------------------------------------------
| @@global.time_zone|'@@session.time_zone'
--------------------------------------------------
| SYSTEM | SYSTEM |
--------------------------------------------------
insert into datedemo values (now(), now(),UTC_TIMESTAMP());
select * from datedemo
----------------------------------------------------------------------
| mydatetime | mytimestamp | utcdate
----------------------------------------------------------------------
| 2017-06-21 16:20:28| 2017-06-21 16:20:28 |2017-06-21 20:20:28
----------------------------------------------------------------------
SET SESSION TIME_ZONE = "+00:00"; // UTC time ZONE
select * from datedemo
----------------------------------------------------------------------
| mydatetime | mytimestamp | utcdate
----------------------------------------------------------------------
| 2017-06-21 16:20:28| 2017-06-21 20:20:28 |2017-06-21 20:20:28
----------------------------------------------------------------------
timeStamp數據類型保存UTC時間在哪裏?根據我的理解,它只是使用會話時區並相應地轉換時間,這也是由Datetime完成的,唯一的區別是日期時間是靜態的,但TimeStamp使用客戶端時區保持轉移。
我可能完全錯了,但如果能回答這個問題,我將不勝感激。