我意识到这是围绕论坛的一个相当普遍的问题,但我不知道我在这里做错了什么。
我有一个“当前”表,例如:
ID(uniqueidentifier)
Name(nvarchar max)
FileName(nvarchar max)
FileVersion(smallint)
CurrentVersionDate(datetime)
CurrentVersionDate 是使用 SQLserver 中的 GETDATE() 函数输入的。
当用户在我的网站上点击“创建文件”时,该表的详细信息将传输到“历史”表中。因此,我使用存储过程从“当前”中选择 * 详细信息并将每个值保存为变量(我在 Visual Studio 项目中使用 vb.net)。我将显示日期变量,因为这是问题所在。我将其保存为“日期”变量:
Dim dDate as Date
dDate = dr("CurrentVersionDate")
然后我将这些变量发送到另一个存储过程以输入“历史”表:
Execute sp_InsertHistory '" & ID & "','" & strName& "','" & strFile & "','" & intVersion & "','" & dDate & "'"
我将存储过程中的日期变量声明为:
@Date datetime,
使用插入语句:
INSERT INTO History
(ID, Name, FileName, FileVersion, VersionDate)
VALUES
(@ID, @Name, @FileName, @FileVersion, @Date)
“历史”表与“当前”表具有相同的设置。单步执行代码,发现此错误:
Error converting data type varchar to datetime
当然变量不是varchar?即使是这样,该字符串肯定是 SQLserver 的正确格式,因为我只是选择 SQL 给出的日期值!有什么想法吗?