TIMESTAMP和DATETIM

TIMESTAMP和DATETIM

相同點

兩者都可用來表示YYYY-MM-DD HH:MM:SS[.fraction]類型的日期。

不同點

datetime的默認值為null,timestamp的默認值不為null,且為系統(tǒng)當前時間(current_timestatmp)。如果不做特殊處理,且update沒有指定該列更新,則默認更新為當前時間。

datetime占用8個字節(jié),timestamp占用4個字節(jié)。timestamp利用率更高。

二者存儲方式不一樣,對于timestamp,它把客戶端插入的時間從當前時區(qū)轉(zhuǎn)化為世界標準時間(UTC)進行存儲,查詢時,逆向返回。但對于datetime,基本上存什么是什么。

二者范圍不一樣。timestamp范圍:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’; datetime范圍:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

時區(qū)

mysql> show variables like '%time_zone%';?

+------------------+--------+

| Variable_name? ? | Value? |

+------------------+--------+

| system_time_zone | CST? ? |

| time_zone? ? ? ? | SYSTEM |

+------------------+--------+

2 rows in set (0.00 sec)

system_time_zone(系統(tǒng)默認時區(qū)),一般為CST,在不同地區(qū)可以解讀成不同時間:

美國中部時間 Central Standard Time (USA) UTC-06:00

澳大利亞中部時間 Central Standard Time (Australia) UTC+09:30

中國標準時 China Standard Time UTC+08:00

古巴標準時 Cuba Standard Time UTC-04:00

time_zone為全局時區(qū),默認采用系統(tǒng)時區(qū)(CST),由于CST有幾種計算方式,有時會導(dǎo)致時間差,可以修改/etc/my.cnf在mysqlid下加入default-time-zone = '+8:00',重啟MySQL即可永久生效。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容