首頁  >  問答  >  主體

mysql - 记录开始时间和结束时间,表字段类型用timestamp还是datetime?

巴扎黑巴扎黑2743 天前728

全部回覆(4)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 15:58:38

    推薦題主看看這篇帖子,總結的不錯 選擇合適的 MySQL 日期時間類型來存儲你的時間

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 15:58:38

    先搜尋下

    這裡回覆很詳細了

    回覆
    0
  • PHPz

    PHPz2017-04-17 15:58:38

    timestamp相比於datetime的優勢:

    1. 所佔空間小,timestamp佔4字節,而datetime佔8位元組;

    2. 包含時區信息,如果日後修改了時區的話,timestamp所表示的時間會隨時區而變化,而datetime不會。

    timestamp的劣勢:

    1. 只能表示從1970年到2038年的時間,而datetime不受此限制。

    性能方面比較,不能一概而論,timestamp雖然是純數字,計算要快一些,但人類不可讀,還必須要經過函數轉化,datetime是字符串類型,人類肉眼直接可讀,雖然計算加減乘除時要經過一道轉化。

    對於小應用來講,空間不必考慮,性能不必考慮,時區都是北京時間,直接使用datetime就好了,不必糾結。

    結論:永遠使用datetime來表示時間,絕不使用timestamp,除非你有明確的理由,或者你知道自己在做什麼。

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 15:58:38

    兩種類型都是存放時間的,至於記憶體佔用和效率的區別在這裡就不說了,一般應用中這點差異也對你係統沒什麼本質上的影響,所以我的觀點是業務指向。
    datetime和timestamp比起來,timestamp類型的欄位在資料庫記錄改變的時候(update)會自動更新這個欄位的值,而datetime需要手動去設定才會改變。
    從業務角度篩選知道這點差異就行了,一般create time選datetime,update time選timestamp

    回覆
    0
  • 取消回覆