Sql 我可以将时间戳列更新为所需的值吗?

Sql 我可以将时间戳列更新为所需的值吗?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个表,其中一列有timestamp列 桌子的结构是这样的 [Time] [timestamp] NOT NULL, 当我使用以下查询插入此表时 insert into test(id,name) values(1,'john') 在这里,我没有在时间列中插入任何时间戳数据类型的值,但在这里,一些值是自动插入的 所以我想知道我是否可以在这列中设置自己的序列值,比如1小时设置3600,2小时设置7200,所以有些时间值 我试过这样做 [Time] [timestamp] NOT NULL,

我有一个表,其中一列有timestamp列

桌子的结构是这样的

[Time] [timestamp] NOT NULL,
当我使用以下查询插入此表时

insert into test(id,name) values(1,'john')
在这里,我没有在时间列中插入任何时间戳数据类型的值,但在这里,一些值是自动插入的

所以我想知道我是否可以在这列中设置自己的序列值,比如1小时设置3600,2小时设置7200,所以有些时间值

我试过这样做

[Time] [timestamp] NOT NULL,
更新测试集时间=7200,但它显示了以下错误

无法更新时间戳列。

我试图给出一个长值,但仍然是相同的错误

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

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


Typetimestamp只是一个自计算的二进制字段,您不应该也不可能在一开始就更新它。如果可能的话,可以为您的项目使用一个自定义添加的datetime字段。

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

类似这样的东西,

ALTER TABLE YourTable为列添加约束DF_YourTable DEFAULT GETDATE()


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

不,您不能更新时间戳。您可以使用以下内容:

[时间][日期时间]默认值不为空(GETDATE)

您可以随时修改该列