Sql server 我正在执行过程,不接受任何来自我的日期,当我试图给datetime变量一个GETDATE()时,它会告诉我靠近';的错误';

Sql server 我正在执行过程,不接受任何来自我的日期,当我试图给datetime变量一个GETDATE()时,它会告诉我靠近';的错误';,sql-server,stored-procedures,Sql Server,Stored Procedures,这就是程序 ALTER PROCEDURE [dbo].[InsertCustomer] @firstName NVARCHAR(50), @lastName NVARCHAR(50), @address NVARCHAR(50), @state NVARCHAR(50), @creditLimit smallmoney, @email NVARCHAR(50), @customerSince smalldatetime AS BE

这就是程序

ALTER PROCEDURE [dbo].[InsertCustomer]

    @firstName NVARCHAR(50),
    @lastName NVARCHAR(50),
    @address NVARCHAR(50),
    @state NVARCHAR(50),
    @creditLimit smallmoney,
    @email NVARCHAR(50),
    @customerSince smalldatetime

 AS
 BEGIN

 INSERT Customers(
        FirstName ,
         LastName ,
        _Address ,
        States , 
        CustomerSince ,
        CreditLimit ,
         Email )

 VALUES (@firstName ,
     @lastName ,
      @address ,
      @state ,
      @customerSince ,
      @creditLimit ,
      @email)

 END;

这是执行-->


你能试着像这样调用proc吗:

DECLARE @dt DATETIME = GETDATE()

EXECUTE InsertCustomer
'Liza',
'Tober',
'46 White Second Blvd.',
'Louisiana',
670,
'Liza@visualStudio.com',
@dt
你在评论中提到一个错误,你是这样尝试的吗?如果是,错误是什么


关键是,不能在过程调用中使用函数(如
GETDATE()
)。因此,为了使用该值,您必须在变量中捕获函数的结果

我认为您必须首先声明一个变量,用
getdate()
赋值,并在过程调用中使用该变量当我这样做@Now DATETIME=getdate()时,它会给我一个错误“附近的语法不正确”(”,非常感谢它解决了我的问题,但我有一个问题-->我不能使用DATETIME()在我的存储过程实现中?你说的“datetime()”是什么意思?我不知道这样一个函数…如果你指的是数据类型
datetime
,是的,你可以使用它…GETDATE()同样,如果这个答案解决了你的问题,你可以接受这个答案。它将帮助未来的访问者。
DECLARE @dt DATETIME = GETDATE()

EXECUTE InsertCustomer
'Liza',
'Tober',
'46 White Second Blvd.',
'Louisiana',
670,
'Liza@visualStudio.com',
@dt