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

SQL Server存储过程插入smalldatetime字段日期异常问题求助

问题解决:DateAdded字段插入默认日期异常

问题根源

你存储过程里的@DateAdded参数默认值写错了——GetDate没有加括号(),SQL Server不会把它当成函数调用,反而会将其解析为无效的标识符,最终使用smalldatetime类型的默认值1900-01-01 00:00:00。

修正后的存储过程

把GetDate改成GETDATE()即可:

alter procedure dbo.spAddStuffExample_Insert
@Name varchar(100),
@EmailAddress varchar(100),
@ContactNumber varchar(100),
@AdditionalInformation varchar(3000) = NULL,
@DateAdded smalldatetime = GETDATE()
as
begin
    set nocount on;
    insert into dbo.TableName (Name, EmailAddress, ContactNumber,AdditionalInformation , DateAdded)
    values(@Name, @EmailAddress, @ContactNumber,@AdditionalInformation, @DateAdded)
end

更优方案(推荐)

如果DateAdded字段的作用就是记录数据插入的当前时间,完全不需要在存储过程里定义这个参数。直接在表字段上设置默认值,这样不管通过什么方式插入数据,都会自动填充当前时间,更可靠:

ALTER TABLE dbo.TableName
ALTER COLUMN DateAdded smalldatetime NOT NULL DEFAULT GETDATE();

之后存储过程可以简化成:

alter procedure dbo.spAddStuffExample_Insert
@Name varchar(100),
@EmailAddress varchar(100),
@ContactNumber varchar(100),
@AdditionalInformation varchar(3000) = NULL
as
begin
    set nocount on;
    insert into dbo.TableName (Name, EmailAddress, ContactNumber,AdditionalInformation)
    values(@Name, @EmailAddress, @ContactNumber,@AdditionalInformation)
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:50:21