您好,登錄后才能下訂單哦!
SQL SERVER中時間戳如何使用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
公開數據庫中自動生成的唯一二進制數字的數據類型。
timestamp 通常用作給表行加版本戳的機制。
存儲大小為 8 個字節。不可為空的 timestamp 列在語義上等價于 binary(8) 列。可為空的 timestamp 列在語義上等價于 varbinary(8) 列。這將導致在C#程序中獲取到的timestamp類型則變成了byte[]類型。所以如果我們需要從數據庫中獲取并使用這個時間戳的話就必需經過轉換。
timestamp 數據類型只是遞增的數字,不保留日期或時間。若要記錄日期或時間,請使用 datetime 數據類型。
一個表只能有一個 timestamp 列。每次插入或更新包含 timestamp 列的行時,timestamp 列中的值均會更新。對行的任何更新都會更改 timestamp 值。
我們可以將timestamp轉換為十六進制或bigint,來方便進行比較和查看:
SELECT TS
,CAST(TS AS VARBINARY(8)) AS 'timestamp轉十六進制'
,CONVERT(BIGINT,TS) AS 'timestamp轉bigint類型'
FROM tb_Ts
WHERE
CONVERT(BIGINT,TS)>=18004
結果:
總結:SQL Server timestamp 數據類型與時間和日期無關。SQL Server timestamp 是二進制數字,它表明數據庫中數據修改發生的相對順序。實現 timestamp 數據類型最初是為了支持 SQL Server 恢復算法。每次修改頁時,都會使用當前的 @@DBTS 值對其做一次標記,然后 @@DBTS 加1。這樣做足以幫助恢復過程確定頁修改的相對次序,但是 timestamp 值與時間沒有任何關系。@@DBTS 返回當前數據庫最后使用的時間戳值。插入或更新包含 timestamp 列的行時,將產生一個新的時間戳值。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。