mysql - 記錄開始時間和結束時間,表字段類型用timestamp還是datetime?
問題描述
mysql數據庫
時間都是近期的
問題解答
回答1:推薦題主看看這篇帖子,總結的不錯 選擇合適的 MySQL 日期時間類型來存儲你的時間
回答2:先搜索下
這里回復很詳細了
回答3:timestamp相比于datetime的優勢:
所占空間小,timestamp占4字節,而datetime占8字節;
包含時區信息,如果日后修改了時區的話,timestamp所表示的時間會隨時區而變化,而datetime不會。
timestamp的劣勢:
只能表示從1970年到2038年的時間,而datetime不受此限制。
性能方面比較,不能一概而論,timestamp雖然是純數字,計算要快一些,但人類不可讀,還必須要經過函數轉化,datetime是字符串類型,人類肉眼直接可讀,雖然計算加減乘除時要經過一道轉化。
對于小應用來講,空間不必考慮,性能不必考慮,時區都是北京時間,直接使用datetime就好了,不必糾結。
結論:永遠使用datetime來表示時間,決不使用timestamp,除非你有明確的理由,或者你知道自己在干什么。
回答4:兩種類型都是存放時間的,至于內存占用和效率的區別在這里就不說了,一般應用中這點差異也對你系統沒什么本質上的影響,所以我的觀點是業務指向。datetime和timestamp比起來,timestamp類型的字段在數據庫記錄發生改變的時候(update)會自動更新這個字段的值,而datetime需要手動去設置才會改變。從業務角度進行篩選知道這點區別就行了,一般create time選datetime,update time選timestamp
