日期:2014-05-17  浏览次数:20732 次

请问,时间戳
我在SQL Server中的一列数据类型设置为timestamp,填充数据后,此列的显式的是二进制数据,那说明时间戳列是存的二进制数据吧,

那请问,时间戳列的值读出来是什么东西呢,我用FileStream 读出来,在记事本中,是空的

能读出来是什么东西吗?

------解决方案--------------------
是一种自动公开数据库中生成的唯一的二进制数的数据类型。rowversion 和 timestamp 是数据类型同义词。rowversion 通常用于对表行进行版本戳记的机制。存储大小为 8 个字节。rowversion 数据类型是一个增加的数字,并且不保留日期或时间。若要记录日期或时间,请使用 datetime 数据类型。
------解决方案--------------------
参考
http://msdn.microsoft.com/zh-cn/library/bb726005(v=sql.100).aspx
------解决方案--------------------
SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时间没有任何关系。

其实呢,也就是相当于自增标识量

你可以 利用sql 转为为数字读取出来
select CONVERT(bigint,'列名')


------解决方案--------------------
可以转换的,用convert函数即可,convert(bitint,timestamp列)
------解决方案--------------------
convert(bigint,timstamt列)