From 848ce2395d62df16ee491d82443abb63aeec2d51 Mon Sep 17 00:00:00 2001 From: IKAZUCHI-Akira Date: Thu, 10 Apr 2025 16:17:09 +0800 Subject: [PATCH] [fix] fixed the issue of not handling negative values when process the accuracy range of timestamp --- .../java/org/apache/doris/flink/serialization/RowBatch.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flink-doris-connector/src/main/java/org/apache/doris/flink/serialization/RowBatch.java b/flink-doris-connector/src/main/java/org/apache/doris/flink/serialization/RowBatch.java index f012b9c67..308e21ca9 100644 --- a/flink-doris-connector/src/main/java/org/apache/doris/flink/serialization/RowBatch.java +++ b/flink-doris-connector/src/main/java/org/apache/doris/flink/serialization/RowBatch.java @@ -582,9 +582,9 @@ public LocalDateTime getDateTime(int rowIndex, FieldVector fieldVector) { public static LocalDateTime longToLocalDateTime(long time) { Instant instant; // Determine the timestamp accuracy and process it - if (time < 10_000_000_000L) { // Second timestamp + if (time > -10_000_000_000L && time < 10_000_000_000L) { // Second timestamp instant = Instant.ofEpochSecond(time); - } else if (time < 10_000_000_000_000L) { // milli second + } else if (time > -10_000_000_000_000L && time < 10_000_000_000_000L) { // milli second instant = Instant.ofEpochMilli(time); } else { // micro second instant = Instant.ofEpochSecond(time / 1_000_000, (time % 1_000_000) * 1_000);