我有一个表,其中有一列包含时间戳列。
表结构是这样的
[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'
根据官方文档,这是不可能的,与其他 DBMS 不同,它不用于存储日期,而只是一个自动更新的 8 位值。
http://msdn.microsoft.com/en-us/library/ms182776%28v=sql.90%29.aspx
Type timestamp 只是一个自计算的二进制字段,您一开始就不应该也无法更新它。如果可能,请为您的项目使用自定义添加的日期时间字段。
可以(至少在 MySql 中)创建一个常规字段并使用 Getdate() 为其指定默认值,以获得一个类似于时间戳类型的字段。
类似的东西,
更改表 YourTable 添加约束 DF_YourTable DEFAULT GETDATE() FOR YourColumn
当然你的数据字段不能再是时间戳类型了。
不,您无法更新时间戳。你可以使用类似的东西:
[时间] [DATETIME] 默认不为空 (GETDATE)。
您可以随时修改该列。