sql-server - 是否可以在旨在插入数据的存储过程中插入当前日期时间?

标签 sql-server date stored-procedures timestamp getdate

我创建了以下存储过程:

CREATE PROCEDURE dbo.InsertTutees 
    @StudentID INT = NULL, 
    @FirstName VARCHAR(50) = NULL, 
    @Surname   VARCHAR(50) = NULL, 
    @Major     VARCHAR(50) = NULL,
    @Timestamp DATETIME = NULL  
AS 
BEGIN 
    SET NOCOUNT ON 

    INSERT INTO dbo.Tutees (StudentID, FirstName, Surname, Major, Timestamp) 
    VALUES (@StudentID, @FirstName, @Surname, @Major, @Timestamp) 
END 
GO

EXEC dbo.InsertTutees 
         @StudentID = 2, 
         @FirstName = 'Sarah', 
         @Surname = 'Smith', 
         @Major = 'Science',
         @Timestamp = '2013-12-12';

但是我想用当前时间戳替换时间戳值。我试过 GETDATE(),但出现以下错误:

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near ')'

是否有其他方法可以在此 exec 语句中检索当前日期?我应该编辑我的存储过程吗?

感谢您的帮助!

编辑: 这是我尝试完成的 exec 语句:

EXEC dbo.InsertTutees
       @StudentID = 2, 
       @FirstName = 'Sarah' , 
       @Surname = 'Smith' , 
       @Major = 'Science' ,
       @Timestamp = getdate()

最佳答案

你可以使用一个中间变量:

    DECLARE @dt datetime =GETDATE()

    EXEC dbo.InsertTutees
       @StudentID = 2, 
       @FirstName = 'Sarah' , 
       @Surname = 'Smith' , 
       @Major = 'Science' ,
       @Timestamp = @dt

关于sql-server - 是否可以在旨在插入数据的存储过程中插入当前日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302838/

相关文章:

mysql - 在Mysql中将字符串转换为日期

java - 在 android 中,是否可以将日期对象格式化为 mm-dd-yy?如果是,那么如何?

sql - 如何在 SQL Server 2008 中的链接 Firebird 服务器上执行存储过程

sql - 使用 FAST_FORWARD 定义游标有什么好处?

java - Driver.getConnection 使用 SQLServer 驱动程序和 Java 1.6.0_29 挂起

java - 输入类型 ="date"thymeleaf

java - 我怎样才能让这个用户(普通用户)获得使用该程序的权限

c# - 如何忽略时区问题从 SQL Server 获取 DateTime 数据?

sql - sql中十进制值的自定义转换

c# - 如何使用EF执行带有输入和输出参数的存储过程?