Skip to content

Commit 765a7f1

Browse files
Changed the logic to handle datetime datatype (#375)
* Changed the logic to handle datetime datatype * Changed the logic to handle datetime datatype * Changed the logic to handle datetime datatype
1 parent 05258dc commit 765a7f1

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

database-commons/src/main/java/io/cdap/plugin/db/DBRecord.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,9 @@ protected void writeToDB(PreparedStatement stmt, @Nullable Schema.Field field, i
311311
case DECIMAL:
312312
stmt.setBigDecimal(sqlIndex, record.getDecimal(fieldName));
313313
break;
314+
case DATETIME:
315+
stmt.setTimestamp(sqlIndex, Timestamp.valueOf(record.getDateTime(fieldName)));
316+
break;
314317
}
315318
return;
316319
}

mssql-plugin/src/main/java/io/cdap/plugin/mssql/SqlFieldsValidator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ public boolean isFieldCompatible(Schema.Field field, ResultSetMetaData metadata,
3838
boolean isSigned = metadata.isSigned(index);
3939
int precision = metadata.getPrecision(index);
4040

41+
// Handles datetime datatypes
42+
// Case when Timestamp maps to datetime
43+
// Case when Datetime2 maps to datetime
44+
// Case when DatetimeOffset maps to datetime
45+
if ((sqlType == Types.TIMESTAMP || sqlType == SqlServerSourceSchemaReader.DATETIME_OFFSET_TYPE)
46+
&& fieldLogicalType.equals(Schema.LogicalType.DATETIME)) {
47+
return true;
48+
}
4149
// Handle logical types first
4250
if (fieldLogicalType != null) {
4351
return super.isFieldCompatible(fieldType, fieldLogicalType, sqlType, precision, isSigned);

0 commit comments

Comments
 (0)