我们正在从 SQL Server 2005 迁移到 2012。其中一项功能因此错误而失败
com.microsoft.sqlserver.jdbc.SQLServerException:不允许从数据类型 varbinary 到 datetime2 的隐式转换。使用 CONVERT 函数运行此查询。
我们用来SQLJDBC driver 3.0与 SQL Server 2012 进行通信。当我们尝试将 NULL 值插入列DATETIME(可为空)时,我发现会发生此问题。但在 2005 年也同样有效。对于此问题的任何帮助,我们将不胜感激。
这是一个INSERT使用 MyBatis ORM 从 Java 到 SQL Server 2012 失败的简单语句:
Insert into temp_test (date1, name, date2) values ('2010-10-10 00:00:00.0','test',null)
Run Code Online (Sandbox Code Playgroud)
当我们尝试从我们的应用程序(使用 SQL JDBC 驱动程序)时,此插入失败...但是相同的代码库在 SQL 2005 中可以正常工作,没有任何问题。