diff --git a/paimon-prestosql-common/src/main/java/org/apache/paimon/prestosql/PrestoSqlPageSourceBase.java b/paimon-prestosql-common/src/main/java/org/apache/paimon/prestosql/PrestoSqlPageSourceBase.java index 9cb0322..082ec82 100644 --- a/paimon-prestosql-common/src/main/java/org/apache/paimon/prestosql/PrestoSqlPageSourceBase.java +++ b/paimon-prestosql-common/src/main/java/org/apache/paimon/prestosql/PrestoSqlPageSourceBase.java @@ -49,6 +49,7 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.math.BigDecimal; +import java.time.ZoneId; import java.util.ArrayList; import java.util.List; @@ -172,7 +173,13 @@ private void appendTo(Type type, DataType logicalType, Object value, BlockBuilde BigDecimal decimal = ((Decimal) value).toBigDecimal(); type.writeLong(output, encodeShortScaledValue(decimal, decimalType.getScale())); } else if (type.equals(TIMESTAMP)) { - type.writeLong(output, ((Timestamp) value).getMillisecond()); + long localMillis = + ((Timestamp) value) + .toLocalDateTime() + .atZone(ZoneId.systemDefault()) + .toInstant() + .toEpochMilli(); + type.writeLong(output, localMillis); } else if (type.equals(TIME)) { type.writeLong(output, (int) value); } else if (type.equals(TIMESTAMP_WITH_TIME_ZONE)) {