@Test
public void itShouldGenerateLingualQueryForBetweenClauseAndTimestampDataType() throws ParseException {
String dateInString1 = "1999-12-31 18:30:00";
String dateInString2 = "2000-01-11 18:30:00";
remoteFilterJson.setCondition("f2 between '"+dateInString1+"' AND '"+dateInString2+"'");
String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
formatter.setTimeZone(TimeZone.getDefault());
Date date1 = formatter.parse(dateInString1);
Date date2 = formatter.parse(dateInString2);
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
dateInString1 = formatter.format(date1);
dateInString2 = formatter.format(date2);
ANTLRInputStream stream = new ANTLRInputStream(remoteFilterJson.getCondition());
QueryParserLexer lexer = new QueryParserLexer(stream);
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
QueryParserParser parser = new QueryParserParser(tokenStream);
parser.removeErrorListeners();
LingualQueryCreator customVisitor = new LingualQueryCreator(remoteFilterJson.getSchema());
String lingualExpression = customVisitor.visit(parser.eval());
Assert.assertEquals("\"f2\" between timestamp '"+dateInString1+"' AND timestamp '"+dateInString2+"'", lingualExpression);
}
LingualQueryCreatorTest.java 文件源码
java
阅读 21
收藏 0
点赞 0
评论 0
项目:Hydrograph
作者:
评论列表
文章目录