diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/mssql/MsSqlDmlStatement.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/mssql/MsSqlDmlStatement.java index f88146d894..d5bba35ab5 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/mssql/MsSqlDmlStatement.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/mssql/MsSqlDmlStatement.java @@ -30,4 +30,23 @@ protected int getTypeCode(Column column, boolean isDateOverrideToTimestamp) { return super.getTypeCode(column, isDateOverrideToTimestamp); } } + + @Override + protected void appendColumnParameter(StringBuilder sql, Column column) { + if (column.getJdbcTypeName() != null && column.getJdbcTypeName().equals("datetime2") && column.getMappedTypeCode() == Types.VARCHAR) { + sql.append("cast(? AS datetime2(6))").append(","); + } else { + super.appendColumnParameter(sql, column); + } + } + + @Override + protected void appendColumnEquals(StringBuilder sql, Column column) { + if (column.getJdbcTypeName() != null && column.getJdbcTypeName().equals("datetime2") && column.getMappedTypeCode() == Types.VARCHAR) { + sql.append(quote).append(column.getName()).append(quote) + .append(" = cast(? AS datetime2(6))"); + } else { + super.appendColumnEquals(sql, column); + } + } }