我可以将timestamp列更新为所需的值吗?

时间:2014-12-29 08:11:24

标签: sql sql-server sql-server-2008

我有一个包含时间戳列的列的表。

表结构是这样的

[Time] [timestamp] NOT NULL,

当我使用以下查询插入此表时

insert into test(id,name) values(1,'john')

这里我没有在Time列中插入任何值,这是timestamp数据类型,但这里会自动插入一些值。

所以我想知道如果我可以在此列中设置我自己的seried值,如3600 1小时或7200 2小时所以一些时间值

我试过这个

更新测试集时间= 7200,但它显示以下错误

无法更新时间戳列。

我试过给出一个很长的值,但仍然是同样的错误

update test set Time=  '2005-05-13 07:15:31.123456789'

4 个答案:

答案 0 :(得分:0)

根据官方文档,这是不可能的,与其他DBMS不同,它不用于存储日期,而只是一个自动更新的8位值。

http://msdn.microsoft.com/en-us/library/ms182776%28v=sql.90%29.aspx

答案 1 :(得分:0)

类型时间戳只是一个自我计算的二进制字段,您不应该在第一时间更新。如果可以,请为项目使用自定义添加的日期时间字段。

答案 2 :(得分:0)

有可能(至少在MySql中)创建一个常规字段并使用Getdate()为其提供一个默认值,以使字段具有类似于时间戳类型的字段。

类似的东西,

ALTER TABLE YourTable ADD CONSTRAINT DF_YourTable DEFAULT GETDATE()for YourColumn

当然,您的数据字段不再是时间戳类型。

答案 3 :(得分:0)

不,您无法更新时间戳。你可以使用类似的东西:

[时间] [DATETIME]非空默认(GETDATE)。

您可以随时修改列。