我在SQL Server上有这个表,如果有人向特定号码发送特定短信,则会更新该表。
我做的是进入一张新表,这是一张时间戳。 现在,问题是,当添加新行时,我会在时间戳值中得到它:
<binary data>
为什么会这样? 我该怎么办?
谢谢!
答案 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
timestamp
是rowversion
的一个(名称很差)同义词,与实际日期和时间没有关系:
的同义词
timestamp
是rowversion
数据类型
rowversion
数据类型只是一个递增的数字,不会保留日期或时间。
答案 1 :(得分:2)
我们需要为列使用datetime
数据类型,该数据类用于捕获当前/更新/插入日期或时间。
TIMESTAMP
存储更新/插入的版本。
ALTER TABLE <TABLENAME>
ADD CONSTRAINT <CONSTRAINT_NAME> DEFAULT getdate() FOR <COLUMN_NAME>