timestamp資料型別是乙個比較特殊的資料型別,他可以自動在你不使用程式更新情況下只要你更新了記錄timestamp會自動更新時間.
通常表中會有乙個create date 建立日期的字段,其它資料庫均有預設值的選項。mysql也有預設值timestamp,但在mysql中,不僅是插入就算是修改也會更新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的某時的開始一直到2023年,精度為一秒,其值作為數字顯示。
timestamp值顯示尺寸的格式如下表所示::1
2
3
4
5
6
7
8
9
10
+
---------------+----------------+
| 列型別 | 顯示格式 |
|
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範圍的奇數值尺寸均被強制為下乙個更大的偶數。
列如:1
2
3
4
5
定義字段長度 強制字段長度
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
mysql 有很多日期格式 這裡僅說明timestamp的應用 mysql create table t1 id int,b timestamp default current timestamp query ok,0 rows affected 0.19 sec mysql show create...
mysql之TIMESTAMP(時間戳)用法詳解
timestamp資料型別是乙個比較特殊的資料型別,他可以自動在你不使用程式更新情況下只要你更新了記錄timestamp會自動更新時間.通常表中會有乙個create date 建立日期的字段,其它資料庫均有預設值的選項。mysql也有預設值timestamp,但在mysql中,不僅是插入就算是修改也...
mysql之TIMESTAMP(時間戳)用法詳解
timestamp資料型別是乙個比較特殊的資料型別,他可以自動在你不使用程式更新情況下只要你更新了記錄timestamp會自動更新時間.通常表中會有乙個create date 建立日期的字段,其它資料庫均有預設值的選項。mysql也有預設值timestamp,但在mysql中,不僅是插入就算是修改也...