From e25d597cb506e90821a12b94f173837b5780b6b0 Mon Sep 17 00:00:00 2001 From: "Hicks, Josh" Date: Wed, 19 Dec 2018 15:00:32 -0500 Subject: [PATCH] 0003837: MSSQL Support for datetime2 values that are before January 1, 1753 --- .../db/platform/mssql/MsSqlDmlStatement.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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); + } + } }