diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeV2Literal.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeV2Literal.java index a3457f2463d65c..0ca19bf2a92715 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeV2Literal.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeV2Literal.java @@ -104,6 +104,11 @@ public LiteralExpr toLegacyLiteral() { getDataType().toCatalogDataType()); } + @Override + public double getDouble() { + return super.getDouble() + microSecond / 1000000.0; + } + @Override public String toString() { return getStringValue(); @@ -291,6 +296,6 @@ public boolean equals(Object o) { return false; } DateTimeV2Literal literal = (DateTimeV2Literal) o; - return Objects.equals(dataType, literal.dataType); + return Objects.equals(dataType, literal.dataType) && Objects.equals(microSecond, literal.microSecond); } } diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java index 2eeee30a38a239..914246f08b6e47 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteralTest.java @@ -490,4 +490,14 @@ void testRoundCeiling() { Assertions.assertEquals(1, literal.roundCeiling(0).month); Assertions.assertEquals(2001, literal.roundCeiling(0).year); } + + @Test + void testEquals() { + DateTimeV2Literal l1 = new DateTimeV2Literal(1, 1, 1, 1, 1, 1, 1); + DateTimeV2Literal l2 = new DateTimeV2Literal(1, 1, 1, 1, 1, 1, 1); + DateTimeV2Literal l3 = new DateTimeV2Literal(1, 1, 1, 1, 1, 1, 2); + + Assertions.assertEquals(l1, l2); + Assertions.assertNotEquals(l1, l3); + } }