You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中更新System_Timestamp类型字段的值

解决方案

首先需要澄清SQL Server的字段类型规则:

  • SQL Server中的timestamp(官方已更名为rowversion)是系统自动维护的二进制行版本标识,不存储实际的时间数据,也不支持手动修改值。你给出的示例数据是标准时间格式,说明你的字段实际应该是datetime2/datetime/smalldatetime这类时间类型,大概率是和Oracle的timestamp类型混淆了。

如果你确认字段是时间类型,要把所有值固定修改为2021-01-01,直接执行赋值语句即可:

UPDATE tableA
SET T_SYSTEM_TIMESTAMP = '2021-01-01';

如果后续需要对时间类型做加减天数的操作,SQL Server不支持直接加减数字,需要用DATEADD函数,比如你之前想减30天的写法是:

UPDATE tableA
SET T_SYSTEM_TIMESTAMP = DATEADD(DAY, -30, T_SYSTEM_TIMESTAMP);

注意事项

全表更新操作建议先开启事务验证结果,避免误改无法回滚:

BEGIN TRANSACTION;
-- 执行更新语句
UPDATE tableA SET T_SYSTEM_TIMESTAMP = '2021-01-01';
-- 先查询确认修改结果是否符合预期
SELECT * FROM tableA;
-- 确认无误再提交,有问题执行ROLLBACK TRANSACTION回滚
COMMIT TRANSACTION;

如果确实字段是原生的timestamp类型,你可以先执行以下语句确认字段类型:

SELECT DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'tableA' AND COLUMN_NAME = 'T_SYSTEM_TIMESTAMP';

这类timestamp字段无法手动修改值,且本身不存储时间数据,你需要调整表结构改用时间类型字段存储时间信息。

内容的提问来源于stack exchange,提问作者Zurf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:12:01