diff --git a/common/src/main/java/com/alibaba/datax/common/element/DateColumn.java b/common/src/main/java/com/alibaba/datax/common/element/DateColumn.java index 6626a6fb..108b0493 100755 --- a/common/src/main/java/com/alibaba/datax/common/element/DateColumn.java +++ b/common/src/main/java/com/alibaba/datax/common/element/DateColumn.java @@ -61,6 +61,7 @@ public class DateColumn extends Column { * */ public DateColumn(final java.sql.Timestamp ts) { this(ts == null ? null : ts.getTime()); + this.setRawNano(ts == null ? 0 : ts.getNanos()); this.setSubType(DateType.DATETIME); } @@ -86,8 +87,11 @@ public class DateColumn extends Column { if (null == this.getRawData()) { return null; } - - return new Date((Long)this.getRawData()); + java.sql.Timestamp myts = new java.sql.Timestamp((Long) this.getRawData()); + myts.setNanos(this.getRawNano()); + myts.setNanos(this.getRawNano()); + return myts; + // return new Date((Long)this.getRawData()); } @Override @@ -127,4 +131,14 @@ public class DateColumn extends Column { public void setSubType(DateType subType) { this.subType = subType; } + + public int getRawNano(){ + return rawNano; + } + + public void setRawNano(int rawNano){ + this.rawNano = rawNano; + } +} + } \ No newline at end of file diff --git a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/writer/CommonRdbmsWriter.java b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/writer/CommonRdbmsWriter.java index a81f7790..f4a69a6c 100755 --- a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/writer/CommonRdbmsWriter.java +++ b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/writer/CommonRdbmsWriter.java @@ -501,17 +501,20 @@ public class CommonRdbmsWriter { case Types.TIMESTAMP: java.sql.Timestamp sqlTimestamp = null; + java.sql.Timestamp tsNano = null; try { - utilDate = column.asDate(); + // utilDate = column.asDate(); + tsNano = (java.sql.Timestamp)(column.asDate()); } catch (DataXException e) { throw new SQLException(String.format( "TIMESTAMP 类型转换错误:[%s]", column)); } - if (null != utilDate) { - sqlTimestamp = new java.sql.Timestamp( - utilDate.getTime()); - } + // if (null != utilDate) { + // sqlTimestamp = new java.sql.Timestamp( + // utilDate.getTime()); + // } + sqlTimestamp=tsNano; preparedStatement.setTimestamp(columnIndex + 1, sqlTimestamp); break;