diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/OdbcScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/OdbcScanNode.java index e21af36af1..3439987f16 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/OdbcScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OdbcScanNode.java @@ -85,6 +85,25 @@ public class OdbcScanNode extends ExternalScanNode { return filter; } } + if (tableType.equals(TOdbcTableType.TRINO) && expr.contains(DateLiteral.class) + && (expr instanceof BinaryPredicate)) { + ArrayList children = expr.getChildren(); + if (children.get(1).isConstant() && (children.get(1).getType().isDate()) || children + .get(1).getType().isDateV2()) { + String filter = children.get(0).toSql(); + filter += ((BinaryPredicate) expr).getOp().toString(); + filter += "date '" + children.get(1).getStringValue() + "'"; + return filter; + } + if (children.get(1).isConstant() && (children.get(1).getType().isDatetime() || children + .get(1).getType().isDatetimeV2())) { + String filter = children.get(0).toSql(); + filter += ((BinaryPredicate) expr).getOp().toString(); + filter += "timestamp '" + children.get(1).getStringValue() + "'"; + return filter; + } + } + return expr.toMySql(); }