PHPz2017-04-17 15:58:38
timestamp相比於datetime的優勢:
所佔空間小,timestamp佔4字節,而datetime佔8位元組;
包含時區信息,如果日後修改了時區的話,timestamp所表示的時間會隨時區而變化,而datetime不會。
timestamp的劣勢:
只能表示從1970年到2038年的時間,而datetime不受此限制。
性能方面比較,不能一概而論,timestamp雖然是純數字,計算要快一些,但人類不可讀,還必須要經過函數轉化,datetime是字符串類型,人類肉眼直接可讀,雖然計算加減乘除時要經過一道轉化。
對於小應用來講,空間不必考慮,性能不必考慮,時區都是北京時間,直接使用datetime就好了,不必糾結。
結論:永遠使用datetime來表示時間,絕不使用timestamp,除非你有明確的理由,或者你知道自己在做什麼。
高洛峰2017-04-17 15:58:38
兩種類型都是存放時間的,至於記憶體佔用和效率的區別在這裡就不說了,一般應用中這點差異也對你係統沒什麼本質上的影響,所以我的觀點是業務指向。
datetime和timestamp比起來,timestamp類型的欄位在資料庫記錄改變的時候(update)會自動更新這個欄位的值,而datetime需要手動去設定才會改變。
從業務角度篩選知道這點差異就行了,一般create time選datetime,update time選timestamp