时间戳字段中显示为十六进制的值(0x000000000000000866)在Microsoft SQL Server 2008上

mic*_*jnr 10 database sql-server

我有一个表格,用于保存已发送的电子邮件.我决定在此表中添加一个TimeStamp字段,以便我可以跟踪电子邮件的发送时间.数据正在写入表中而没有任何问题,但当我使用Microsoft SQL Server 2008 Management Studio查看表内容时,Timestamp字段中包含的数据显示如下:0x000000000000000000845,即使在已写入的记录中也是如此自引入Timestamp值以来到数据库

然后我将字段类型更改为datetime,然后显示日期.但它显示日期1900-01-01 00:00:23.然后我将其更改回Timestamp字段,然后返回到当前的十六进制格式.

我做错了吗?

干杯

小智 16

我决定在此表中添加一个TimeStamp字段,以便我可以跟踪电子邮件的发送时间

没错.读取数据库会向您显示TMIestamp字段 - 这是Sybase服务器的遗留字段 - 不存储时间戳.基本上它就像一个全球运营柜台.它与时间无关.

如果你想要一个真正的时间戳,请输入DateTime类型的列,并将系统时间设置为默认/通过atrigger等.时间戳完全不适用于此.

同样,没有MS的东西 - MS SQL Server作为Windows的Sybase SQL Server端口启动,Timestampdata类型是Sybase遗留物.

  • 数据类型`timestamp`已经被弃用,而不是`rowversion`,这确实是对它真正的更好描述 (3认同)