diff --git a/fe/fe-core/src/main/java/org/apache/doris/rewrite/FEFunctions.java b/fe/fe-core/src/main/java/org/apache/doris/rewrite/FEFunctions.java index d67c55c183..03150ba1f2 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/rewrite/FEFunctions.java +++ b/fe/fe-core/src/main/java/org/apache/doris/rewrite/FEFunctions.java @@ -317,6 +317,14 @@ public class FEFunctions { return null; } + @FEFunction(name = "timestamp", argTypes = {"DATETIME"}, returnType = "DATETIME") + public static DateLiteral timestamp(LiteralExpr arg) throws AnalysisException { + if (arg instanceof DateLiteral) { + return (DateLiteral) arg; + } + return null; + } + /** ------------------------------------------------------------------------------ */ diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java index 4bcaea3ab6..5e30942724 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java @@ -225,4 +225,10 @@ public class ConstantExpressTest { explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "explain " + sql); Assert.assertTrue(explainString.contains("NULL")); } + + @Test + public void testTimestamp() throws Exception { + testConstantExpressResult("select timestamp('2021-07-24 00:00:00')", + "'2021-07-24 00:00:00'"); + } }