Kli*_*Max 1 sql-server timestamp sql-server-2008-r2
timestampSQL Server 2008 R2 中有一列包含列.当我只将这个列添加到我的表时,我看到这样的值0x00000000000007D1.我尝试将数据放入其中:
UPDATE test_time SET date3=
CONVERT(TIMESTAMP, CONVERT(datetime,'2002-08-20 14:00:00.000',120))
WHERE ogr_fid=1
Run Code Online (Sandbox Code Playgroud)
但得到错误
无法更新时间戳列
这有什么不对?
SQL Server的TIMESTAMP数据类型与日期和时间无关!
它只是一个连续数字的二进制表示 - 它唯一有利于确保一行在读取后没有变化.
在从不版本的SQL Server中,它被调用RowVersion- 因为它确实是它的本质.请参阅ROWVERSION上的MSDN文档:
是一种在数据库中公开自动生成的唯一二进制数的数据类型.rowversion通常用作版本标记表行的机制.rowversion数据类型只是一个递增的数字,不保留日期或时间.要记录日期或时间,请使用datetime2数据类型.
因此,您无法将字符串转换为TIMESTAMPSQL Server中的字符串.