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

问题描述 投票:0回答:4

我有一个表,其中有一列包含时间戳列。

表结构是这样的

[Time] [timestamp] NOT NULL,

当我使用以下查询插入到该表中时

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

这里我没有在时间列中插入任何值(时间戳数据类型),但这里会自动插入一些值。

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

我尝试过这样

更新测试集 Time=7200 但它向我显示以下错误

无法更新时间戳列。

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

update test set Time=  '2005-05-13 07:15:31.123456789'
sql sql-server sql-server-2008
4个回答
0
投票

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

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


0
投票

Type timestamp 只是一个自计算的二进制字段,您一开始就不应该也无法更新它。如果可能,请为您的项目使用自定义添加的日期时间字段。


0
投票

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

类似的东西,

更改表 YourTable 添加约束 DF_YourTable DEFAULT GETDATE() FOR YourColumn

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


0
投票

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

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

您可以随时修改该列。

© www.soinside.com 2019 - 2024. All rights reserved.