sqlserver datetime转date_SQL SERVER数据库类型—时间戳(timestamp)

c212cb3d1ec232b4ab9d34a745ab46f6.png

timestamp介绍 

  1. 公开数据库中自动生成的唯一二进制数字的数据类型。

  2. timestamp 通常用作给表行加版本戳的机制。

  3. 存储大小为 8 个字节。不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的 timestamp 列在语义上等价于 varbinary(8) 列。这将导致在C#程序中获取到的timestamp类型则变成了byte[]类型。所以如果我们需要从数据库中获取并使用这个时间戳的话就必需经过转换。

  4. timestamp 数据类型只是递增的数字,不保留日期或时间。若要记录日期或时间,请使用 datetime 数据类型。

  5. 一个表只能有一个 timestamp 列。每次插入或更新包含 timestamp 列的行时,timestamp 列中的值均会更新。对行的任何更新都会更改 timestamp 值。

我们可以将timestamp转换为十六进制或bigint,来方便进行比较和查看:

SELECT TS
,CAST(TS AS VARBINARY(8)) AS 'timestamp转十六进制'
,CONVERT(BIGINT,TS) AS 'timestamp转bigint类型'FROM tb_TsWHERECONVERT(BIGINT,TS)>=18004

结果:

425cdc938487364dde1d607fb3a6d5e7.png

总结:SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时间没有任何关系。@@DBTS 返回当前数据库最后使用的时间戳值。插入或更新包含 timestamp 列的行时,将产生一个新的时间戳值。

aeba12263847605d9b38d9439c31ddcd.png

3ae8c97411ee67087539936d5a2a25ee.png

36a4c7c900b600dc9a49ea70bc7d9965.png

090d9bdac6384496e9a59b55011538b4.png

aeba12263847605d9b38d9439c31ddcd.png

2a863ecd0a4dacfa3a6d326360333fa8.png

腾讯课堂

2437a4146a37252f142d99b99034a2cf.png

网易云课堂

cf41ad420dd5a0df1872b58869eeb8a3.gif

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页