C# 无法在EF访问的存储过程中将NVARCHAR转换为datetime2
我正试图从C#执行一个存储过程 存储过程:C# 无法在EF访问的存储过程中将NVARCHAR转换为datetime2,c#,sql,entity-framework,C#,Sql,Entity Framework,我正试图从C#执行一个存储过程 存储过程: CREATE PROCEDURE LogDataExport (@ExportedOn DATETIME2) AS INSERT INTO dbo.DataExportLogging (Id, ExportedOn, Description, Text) SELECT 1, @ExportedOn, 'asd', 'dsasadfsdag' GO 我得到一个错误,dt无法从NVARCHAR转换为Datetime2如果
CREATE PROCEDURE LogDataExport
(@ExportedOn DATETIME2)
AS
INSERT INTO dbo.DataExportLogging (Id, ExportedOn, Description, Text)
SELECT 1, @ExportedOn, 'asd', 'dsasadfsdag'
GO
我得到一个错误,
dt
无法从NVARCHAR
转换为Datetime2
如果您喜欢服务器端解决方案,可以将dbo.DataExportLogging.ExportedOn
列默认值设置为getdate()
尝试在SqlParameter上指定数据类型dt.SqlDbType=SqlDbType.DateTime2代码>是编译时错误还是运行时错误?具体错误是什么?请共享DataExportLogging
的CREATE TABLE
脚本。该脚本将获取数据库服务器时区中的日期,而不是客户端应用程序的日期。所以不完全一样。如果您使用Datetime2
作为您的数据类型(推荐!),您也应该停止使用getdate()
而改用sysdatetime()
CREATE PROCEDURE LogDataExport
(@ExportedOn DATETIME2)
AS
INSERT INTO dbo.DataExportLogging (Id, ExportedOn, Description, Text)
SELECT 1, @ExportedOn, 'asd', 'dsasadfsdag'
GO