MySQL中CURRENT_TIMESTAMP數據類型詳解

MySQL中CURRENT_TIMESTAMP數據類型會自動根據UPDATE 和INSERT 到當前的時間哦,這樣我們在保存或更新數據時就不需要現插入一個time的。

1. MySQL 獲得當前時間戳函數:current_timestamp, current_timestamp()

代碼如下

mysql> select current_timestamp, current_timestamp();

+---------------------+---------------------+
| current_timestamp | current_timestamp() |
+---------------------+---------------------+
| 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |
+---------------------+---------------------+


MYSQL中TIMESTAMP類型可以設定默認值,就像其他類型一樣。

1、自動UPDATE 和INSERT 到當前的時間:
表:
———————————
Table Create Table
——————————————————————————————-

代碼如下
t1 CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=gb2312


數據:

代碼如下
1 2007-10-08 11:53:35
2 2007-10-08 11:54:00
insert into t1(p_c) select 3;
update t1 set p_c = 2 where p_c = 5;

數據:

代碼如下
1 2007-10-08 11:53:35
5 2007-10-08 12:00:37
3 2007-10-08 12:00:37

2、自動INSERT 到當前時間,不過不自動UPDATE。

總結

1.第一次插入時記錄一次時間戳
2.每次更新都更新時間戳
3.只記錄簡要時間,比如Date
如果是第一種和第二種情況,使用timestamp相比datetime要更爲方便些。timestamp默認值有三種:

■無
■NULL
■NOT NULL DEFAULT CURRENT_TIMESTAMP
■NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
其中,

■CURRENT_TIMESTAMP - 當更新此條記錄時,時間戳不會改變
■CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - 當更新此條記錄時,時間戳將會改變,變爲最新時間
設置CURRENT_TIMESTAMP默認值後,插入記錄還是更新記錄都不需要維護該字段,該字段完全由MySQL維護,就像AutoIncrement字段一樣,但如果使用上文設置的datetime字段,則需要手動構造時間更新,比如類似now()等。

對CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,有個特殊情況,假如你更新的字段值(UPDATE)沒有變化時,MySQL將會忽略更新操作,所以,時間戳也不會改變。另外,如果有多個CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP列,那麽MySQL只會更新第一個。

更多相關文章
  • 在asp.net中C#數據類型包括有值類型.簡單類型.整型.布爾型.字符型.浮點型.結構類型等等,有需要學習的朋友可進入參考參考.4.1 值類型 各種值類型總是含有相應該類型的一個值.C#迫使你初始化變量才能使用它們進行計算-變量沒有初始化不會出問題,因爲當你企圖使用它們時,編譯器會告訴你. 每當把
  • 文章分析了關于php中浮點型(float)和整型(integer)數據類型的用法區別以及在那種情況下會出現數據長度不夠.取值只能爲True或者False,當其他類型轉化爲boolean類型時,以下值被認爲是 FALS
  • Oracle 的 XML 實現? Oracle 已經通過數據庫教程的 XML DB 組件實現了 XML,該組件是企業版和標准版的標准特性.通過數據庫配置助手 (DBCA) 或者運行一個目錄腳本 catqm.sql,可以輕松安裝 Oracle XML DB.XML DB 産品提供本文討論的所有特性.要 ...
  • uniqueidentifier數據類型可存儲16字節的二進制值,其作用與全局唯一標記符(GUID)一樣.GUID是唯一的二進制數:世界上的任何兩台計算機都不會生成重複的GUID值.在SQL中 ROWGUIDCOL表示新列是行的全局唯一標識列.對于每個表只能指派一個uniqueidentifier
  • mysql教程 sql enum數據類型插入,更新,刪除操作enum列總有1個默認值.如果未指定默認值,對于包含null的列,默認值爲null:否則,第1個枚舉值將被當作默認值. 如果在enum列中插入了不正確的值,
  • 昨天因爲一個功能需要有數據精度比較高的存儲,我常用的int,float,double都不能滿足這個要求,後來想到使用數據類型DECIMAL(M,D)來解決,後來還真行,下面我來介紹此函數的用法.首先,對于精度比較高的
  • 下面你將看到的是關于NUMERIC和DECIMAL數據類型比較了,numeric與decimal表示的數據類型是有的區別的,主要在精確度上,更詳細的確要看下面對比與實例比較.decimal(numeric ) 同義,用于精確存儲數值 .decimal 數據類型最多可存儲 38 個數字,所有數字都能夠 ...
  • 數據類型在redis中有5種了,這裏我們簡單的來爲各位介紹一下redis中5種數據類型的基本知識,希望對大家有幫助.redis和memcached兩種緩存,個人覺得redis更好用,因爲它不僅提供了豐富的數據類型,還
一周排行