我有一列timestamp
类型的列,每次更新记录时都会更新。
我们有一些用于同步数据的特定逻辑,我想将时间戳的值存储在其他表中,以便以后可以与源进行比较。由于自动更新,无法创建类型为timestamp
的新列。
我应该在TableB中使用哪种SQL类型以实现最佳性能和更快的比较CAST?
答案 0 :(得分:1)
timestamp是rowversion数据类型的同义词,它是subject 数据类型同义词的行为。在DDL语句中,使用 尽可能使用rowversion代替时间戳。欲了解更多 有关信息,请参阅数据类型同义词(Transact-SQL)。
和
不建议使用时间戳语法。
和
是公开自动生成的唯一二进制数据的数据类型 数据库中的数字。行版本通常用作一种机制 用于版本标记表行。存储大小为8个字节。
因此,将它们放在一起:将TIMESTAMP
(应该为ROWVERSION
)视为无意义的8字节二进制文件。如果您真的想对它进行某些操作,则可以将其存储为8字节二进制文件,也可以将其转换为8字节长度的类型。在这种情况下,我建议使用BIGINT
。
答案 1 :(得分:0)
首先,请了解时间戳记不是日期和时间类型的值,而是基于此类数据的唯一标识符。
我建议您查看文档Date and Time Data Types and Functions (Transact-SQL),然后选择最适合您需要的数据类型。这可能是 DATETIME2,DATETIMEOFFSET,DATETIME