diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java index 9a5dda66d3..db84ba1050 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLExprParser.java @@ -930,9 +930,16 @@ public class SQLExprParser extends SQLParser { SQLExpr rightExp; if (lexer.token() == Token.LT) { + SQLBinaryOperator op = SQLBinaryOperator.LessThan; + lexer.nextToken(); + if (lexer.token() == Token.EQ) { + lexer.nextToken(); + op = SQLBinaryOperator.LessThanOrEqual; + } + rightExp = bitOr(); - expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.LessThan, rightExp); + expr = new SQLBinaryOpExpr(expr, op, rightExp); // expr = relationalRest(expr); } else if (lexer.token() == Token.LTEQ) { lexer.nextToken(); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSelectTest37.java b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSelectTest37.java index fed3205370..cfab0e13d3 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSelectTest37.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/oracle/OracleSelectTest37.java @@ -23,7 +23,7 @@ public class OracleSelectTest37 extends OracleTest { "select resource_value,count(resource_value) nums,http_method " + "from ( " + " select * from audit_url_log " - + " where project_id = ? and to_char(begin_time,'yyyy-MM-dd') >= ? and to_char(begin_time,'yyyy-MM-dd') <= ? ) " + + " where project_id = ? and to_char(begin_time,'yyyy-MM-dd') > = ? and to_char(begin_time,'yyyy-MM-dd') < = ? ) " + " group by resource_value,http_method having count(resource_value) > = ?"; // OracleStatementParser parser = new OracleStatementParser(sql);