diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java index 567d2169ff..d1a4a4cd2c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindFunction.java @@ -175,7 +175,7 @@ public class BindFunction implements AnalysisRuleFactory { } catch (Exception e) { // ignore } - if (!left.getDataType().isDateType() && arithmetic.getTimeUnit().isDateTimeUnit()) { + if (!left.getDataType().isDateType() && !arithmetic.getTimeUnit().isDateTimeUnit()) { left = arithmetic.left().castTo(DateType.INSTANCE); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java index ec5c5ce02f..c288698451 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java @@ -36,6 +36,7 @@ import java.util.List; * Describes the addition and subtraction of time units from timestamps. * Arithmetic expressions on timestamps are syntactic sugar. * They are executed as function call exprs in the BE. + * Example: '1996-01-01' + INTERVAL '3' month; * TODO: we need to rethink this, and maybe need to add a new type of Interval then implement IntervalLiteral as others */ public class TimestampArithmetic extends Expression implements BinaryExpression {