Skip to content

Commit 68466ba

Browse files
author
xuchao
committed
修改 timestamp 转换问题
1 parent 762bcf2 commit 68466ba

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

core/src/main/java/com/dtstack/flink/sql/side/BaseAsyncReqRow.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.apache.flink.streaming.runtime.tasks.ProcessingTimeService;
4141
import org.apache.flink.table.api.DataTypes;
4242
import org.apache.flink.table.dataformat.BaseRow;
43+
import org.apache.flink.table.typeutils.TimeIndicatorTypeInfo;
4344
import org.apache.flink.types.Row;
4445
import org.slf4j.Logger;
4546
import org.slf4j.LoggerFactory;
@@ -112,7 +113,7 @@ private void initMetric() {
112113

113114

114115
protected Object convertTimeIndictorTypeInfo(Integer index, Object obj) {
115-
boolean isTimeIndicatorTypeInfo = DataTypes.class.isAssignableFrom(sideInfo.getRowTypeInfo().getTypeAt(index).getClass());
116+
boolean isTimeIndicatorTypeInfo = TimeIndicatorTypeInfo.class.isAssignableFrom(sideInfo.getRowTypeInfo().getTypeAt(index).getClass());
116117

117118
//Type information for indicating event or processing time. However, it behaves like a regular SQL timestamp but is serialized as Long.
118119
if (obj instanceof LocalDateTime && isTimeIndicatorTypeInfo) {

core/src/main/java/com/dtstack/flink/sql/util/RowDataConvert.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.apache.flink.table.dataformat.BaseRow;
44
import org.apache.flink.table.dataformat.BinaryString;
55
import org.apache.flink.table.dataformat.GenericRow;
6+
import org.apache.flink.table.dataformat.SqlTimestamp;
67
import org.apache.flink.types.Row;
78

89
import java.sql.Timestamp;
@@ -23,7 +24,8 @@ public static BaseRow convertToBaseRow(Row row){
2324
if(row.getField(i) instanceof String){
2425
genericRow.setField(i, BinaryString.fromString((String)row.getField(i)));
2526
} else if(row.getField(i) instanceof Timestamp){
26-
genericRow.setField(i, ((Timestamp)row.getField(i)).getTime());
27+
SqlTimestamp newTimestamp = SqlTimestamp.fromTimestamp(((Timestamp)row.getField(i)));
28+
genericRow.setField(i, newTimestamp);
2729
}else{
2830
genericRow.setField(i, row.getField(i));
2931
}

0 commit comments

Comments
 (0)