我有一个包含时间戳列的列的表。
表结构是这样的
[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'
答案 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)。
您可以随时修改列。