我的SQL Server数据库中有一个表,其中包含一个DateAdded字段。我只希望日期和时间的格式为dd/mm/yyyy hh:mm:ss,因此我为该字段选择了smalldatetime数据类型。我现在正在创建一个存储过程,以便将数据插入该表中。在其他字段中(与问题无关),有一个DateAdded字段,因为这是一个非NULL字段。我的过程如下:
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是1900-01-01 00:00:00。我不关心格式,但它肯定不是1900年代。
1条答案
按热度按时间but5z9lq1#
可以传递给存储过程的只有常量和变量。
根据Microsoft参考:https://learn.microsoft.com/en-us/sql/relational-databases/stored-procedures/specify-parameters?view=sql-server-ver16
GETDATE()
是一个函数,函数不能用于传递参数值或用作默认参数值。必须使用GETDATE()
函数删除默认值。您的问题有两种可能的解决方法。
1.在存储过程中声明一个设置为
GETDATE()
的局部变量。使用该局部变量。1.创建一个设置为
GETDATE()
的变量,并将该变量传递给存储过程。上面#1的示例,在存储过程中声明局部变量: