定義
時間戳是指從GMT 1970 01 01 0000:00(北京時間1970 01 0800: 00)到現在的總秒數。
分類
1.自建時間戳:這種時間戳從時間接收設備(如GPS、CDMA、北鬥衛星)獲取時間,通過時間戳服務器頒發時間戳證書。這種時間戳可以用來認定企業內部責任,經法院認證就沒有法律效力。因為通過時間接收設備接收時間時可能被篡改,所以不能作為法律依據。
2.具有法律效力的時間戳:是中國科學院國家授時中心與北京聯合可信技術服務有限公司共建的國內第三方可信時間戳認證服務,國家授時中心負責授時和守時監控。由於其準時監控功能,保證了時間戳證書中的時間準確,不被篡改。獲取時間戳的平臺有“公共版權保護平臺”,可以和中科院國家授時中心同步。
數據庫系統中的時間戳
數據庫中自動生成的唯壹二進制數,獨立於時間和日期,通常用作向表行添加版本標記的機制。存儲大小為8字節。
每個數據庫都有壹個計數器,當在數據庫中插入或更新包含時間戳列的表時,計數器的值會增加。此計數器是數據庫時間戳。這可以跟蹤數據庫中的相對時間,而不是與時鐘相關聯的實際時間。壹個表只能有壹個時間戳列。每次修改或插入包含時間戳列的行時,都會在時間戳列中插入壹個增量數據庫時間戳值。該屬性使得時間戳列不適合用作鍵,尤其是主鍵。對行的任何更新都會改變時間戳值,從而改變鍵值。如果列屬於主鍵,舊鍵值將無效,引用舊值的外鍵將不再有效。如果在動態遊標中引用該表,所有更新都將改變遊標中行的位置。如果列屬於索引鍵,對數據行的所有更新也會導致索引更新。
在壹行中使用timestamp列可以很容易地確定自上次讀取以來該行中的任何值是否發生了更改。如果行程發生變化,時間戳值將被更新。如果沒有對該行進行更改,時間戳值將與先前讀取該行時的時間戳值壹致。若要返回數據庫的當前時間戳值,請使用@@DBTS。
在控制並發性方面發揮作用。
用戶A/B同時打開壹條記錄並開始編輯。保存時可以判斷時間戳,因為每次記錄更新時系統都會自動維護時間戳,所以如果保存時取出的時間戳和數據庫中的時間戳不相等,說明記錄在這個過程中被更新了,可以防止別人的更新被覆蓋。