Sql-Server

在 sql server 中使用時間戳數據類型的目的?

  • January 21, 2021
  1. 在 sql server 中使用時間戳數據類型的目的是什麼?
  2. 您是否有在實際業務案例中使用時間戳的具體範例?
  3. 何時使用時間戳數據類型相關?

謝謝!

這可能是你的一個小誤解。

時間戳不是數據類型。它是/是 rowversion 的同義詞,這裡提到:

!注意

Transact-SQL rowversion 數據類型不是日期或時間數據類型。timestamp 是 rowversion 的已棄用同義詞

參考: 日期和時間數據類型和函式 (Transact-SQL) (Microsoft | SQL Docs)

當您談論時間戳時,您實際上是在談論兩件事:

  1. 返回某種形式的日期或日期/時間值的函式
  2. 將返回值儲存在表中的實際數據類型。

rowversion (時間戳;已棄用)是/是 SQL Server的專有“功能”,其中包含既不是數據也不是時間的數據類型。

是一種在數據庫中公開自動生成的唯一二進制數的數據類型。rowversion 通常用作對錶行進行版本標記的機制。儲存大小為 8 個字節。**rowversion 數據類型只是一個遞增的數字,不保留日期或時間。**要記錄日期或時間,請使用 datetime2 數據類型。

參考: rowversion (Transact-SQL) (Microsoft | SQL Docs)

參考資料可能會幫助您更好地表述您的問題,或者為您提供使用rowversion日期時間函式與適當日期時間數據類型的組合的理由。

我已經籠統地回答了你的問題。但是,回答您的具體問題很困難,因為它們可能基於錯誤的假設/知識。通讀參考資料並根據需要編輯您的問題。

它是行版本:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/rowversion-transact-sql?view=sql-server-ver15

可用於表間數據同步的例子。請看看這個:

https://www.mssqltips.com/sqlservertip/4545/synchronizing-sql-server-data-using-rowversion/

還有其他數據同步方法,但這是一個選項。

引用自:https://dba.stackexchange.com/questions/283679