添加新行时间戳列时发出问题

时间:2012-12-14 08:10:01

标签: sql sql-server

我在SQL Server上有这个表,如果有人向特定号码发送特定短信,则会更新该表。

我做的是进入一张新表,这是一张时间戳。 现在,问题是,当添加新行时,我会在时间戳值中得到它:

<binary data>

为什么会这样? 我该怎么办?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果要记录插入行的日期和时间,请使用datetime(或datetime2,如果使用SQL Server 2008或更高版本)列,并使用默认约束:

ALTER TABLE tab add time_added datetime2
ALTER TABLE tab add constraint DF_tab_time_added
    DEFAULT (CURRENT_TIMESTAMP) for time_added

timestamprowversion的一个(名称很差)同义词,与实际日期和时间没有关系:

  

timestamprowversion数据类型

的同义词      

rowversion数据类型只是一个递增的数字,不会保留日期或时间。

答案 1 :(得分:2)

我们需要为列使用datetime数据类型,该数据类用于捕获当前/更新/插入日期或时间。

TIMESTAMP存储更新/插入的版本。

ALTER TABLE <TABLENAME>
ADD CONSTRAINT <CONSTRAINT_NAME> DEFAULT getdate() FOR <COLUMN_NAME>