mysql中timestamp,datetime,int類型的區別與優劣,timestampdatetime

來源:互聯網
上載者:User

mysql中timestamp,datetime,int類型的區別與優劣,timestampdatetime

mysql中timestamp,datetime,int類型的區別與優劣 int1. 佔用4個位元組2. 建立索引之後,查詢速度快3. 條件範圍搜尋可以使用使用between4. 不能使用mysql提供的時間函數結論:適合需要進行大量時間範圍查詢的資料表 datetime1. 佔用8個位元組2. 允許為空白值,可以自訂值,系統不會自動修改其值。3. 實際格式儲存(Just stores what you have stored and retrieves the same thing which you have stored.)4. 與時區不轉換(It has nothing to deal with the TIMEZONE and Conversion.)5. 不可以設定預設值,所以在不允許為空白值的情況下,必須手動指定datetime欄位的值才可以成功插入資料。6. 可以在指定datetime欄位的值的時候使用now()變數來自動插入系統的目前時間。結論:datetime類型適合用來記錄資料的原始的建立時間,因為無論你怎麼更改記錄中其他欄位的值,datetime欄位的值都不會改變,除非你手動更改它。 timestamp1. 佔用4個位元組2. 允許為空白值,但是不可以自訂值,所以為空白值時沒有任何意義。3. TIMESTAMP值不能早於1970或晚於2037。這說明一個日期,例如'1968-01-01',雖然對於DATETIME或DATE值是有效,但對於TIMESTAMP值卻無效,如果分配給這樣一個對象將被轉換為0。4.值以UTC格式儲存( it stores the number of milliseconds)5.時區轉化 ,儲存時對當前的時區進行轉換,檢索時再轉換回當前的時區。6. 預設值為CURRENT_TIMESTAMP(),其實也就是當前的系統時間。7. 資料庫會自動修改其值,所以在插入記錄時不需要指定timestamp欄位的名稱和timestamp欄位的值,你只需要在設計表的時候添加一個timestamp欄位即可,插入後該欄位的值會自動變為當前系統時間。8. 以後任何時間修改表中的記錄時,對應記錄的timestamp值會自動被更新為當前的系統時間。結論:timestamp類型適合用來記錄資料的最後修改時間,因為只要你更改了記錄中其他欄位的值,timestamp欄位的值都會被自動更新。 

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.