標籤:-- padding and net 目前時間 man index number nbsp
timestamp資料類型是一個比較特殊的資料類型,他可以自動在你不使用程式更新情況下只要你更新了記錄timestamp會自動更新時間
一、TIMESTAMP的變體
TIMESTAMP時間戳記在建立的時候可以有多重不同的特性,如:
1.在建立新記錄和修改現有記錄的時候都對這個資料列重新整理:
?
| 1 |
TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
2.在建立新記錄的時候把這個欄位設定為目前時間,但以後修改時,不再重新整理它:
?
| 1 |
TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
3.在建立新記錄的時候把這個欄位設定為0,以後修改時重新整理它:
?
| 1 |
TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
4.在建立新記錄的時候把這個欄位設定為給定值,以後修改時重新整理它:
?
| 1 |
TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss‘ ON UPDATE CURRENT_TIMESTAMP |
MySQL目前不支援列的Default 為函數的形式,如達到你某列的預設值為當前更新日期與時間的功能,你可以使用TIMESTAMP列類型,下面就詳細說明TIMESTAMP列類型
二、TIMESTAMP列類型
TIMESTAMP值可以從1970的某時的開始一直到2037年,精度為一秒,其值作為數字顯示。
TIMESTAMP值顯示尺寸的格式如下表所示:
:
?
| 12345678910 |
+---------------+----------------+| 列類型 | 顯示格式 || TIMESTAMP(14) | YYYYMMDDHHMMSS | | TIMESTAMP(12) | YYMMDDHHMMSS || TIMESTAMP(10) | YYMMDDHHMM || TIMESTAMP(8) | YYYYMMDD || TIMESTAMP(6) | YYMMDD || TIMESTAMP(4) | YYMM || TIMESTAMP(2) | YY |+---------------+----------------+ |
“完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的顯示尺寸,創造最常見的顯示尺寸是6、8、12、和14。
你可以在建立表時指定一個任意的顯示尺寸,但是定義列長為0或比14大均會被強制定義為列長14。
列長在從1~13範圍的奇數值尺寸均被強製為下一個更大的偶數。
列如:
?
| 12345 |
定義欄位長度 強制欄位長度TIMESTAMP(0) -> TIMESTAMP(14)TIMESTAMP(15)-> TIMESTAMP(14)TIMESTAMP(1) -> TIMESTAMP(2)TIMESTAMP(5) -> TIMESTAMP(6) |
1.雖然你建表時定義了列TIMESTAMP(8),但在你進行資料插入與更新時TIMESTAMP列實際上儲存了14位的資料(包括年月日時分秒),只不過在你進行查詢時MySQL返回給你的是8位的年月日資料。如果你使用ALTER TABLE拓寬一個狹窄的TIMESTAMP列,以前被“隱蔽”的資訊將被顯示。
2.同樣,縮小一個TIMESTAMP列不會導致資訊失去,除了感覺上值在顯示時,較少的資訊被顯示出。
mysql之TIMESTAMP(時間戳記)用法詳解