forked from github/dataease
Merge pull request #742 from dataease/pr@v1.2@fix_ds_sql
fix: 数据源查询计算过滤完善
This commit is contained in:
commit
2040441de3
@ -707,7 +707,7 @@ public class OracleQueryProvider extends QueryProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (field.getDeType() == 1) {
|
if (field.getDeType() == 1) {
|
||||||
if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) {
|
if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
|
||||||
whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT);
|
whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT);
|
||||||
}
|
}
|
||||||
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
|
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
|
||||||
@ -725,9 +725,13 @@ public class OracleQueryProvider extends QueryProvider {
|
|||||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||||
whereValue = "'%" + value + "%'";
|
whereValue = "'%" + value + "%'";
|
||||||
|
} else {
|
||||||
|
if (field.getDeType() == 1) {
|
||||||
|
whereValue = String.format(OracleConstants.TO_DATE, "'" + value + "'", OracleConstants.DEFAULT_DATE_FORMAT);
|
||||||
} else {
|
} else {
|
||||||
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value);
|
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
list.add(SQLObj.builder()
|
list.add(SQLObj.builder()
|
||||||
.whereField(whereName)
|
.whereField(whereName)
|
||||||
.whereTermAndValue(whereTerm + whereValue)
|
.whereTermAndValue(whereTerm + whereValue)
|
||||||
@ -762,7 +766,7 @@ public class OracleQueryProvider extends QueryProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (field.getDeType() == 1) {
|
if (field.getDeType() == 1) {
|
||||||
if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) {
|
if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
|
||||||
whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT);
|
whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT);
|
||||||
}
|
}
|
||||||
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
|
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
|
||||||
@ -782,7 +786,9 @@ public class OracleQueryProvider extends QueryProvider {
|
|||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
|
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
|
||||||
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
|
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
|
||||||
whereValue = String.format(OracleConstants.WHERE_BETWEEN, startTime, endTime);
|
String st = String.format(OracleConstants.TO_DATE, "'" + startTime + "'", OracleConstants.DEFAULT_DATE_FORMAT);
|
||||||
|
String et = String.format(OracleConstants.TO_DATE, "'" + endTime + "'", OracleConstants.DEFAULT_DATE_FORMAT);
|
||||||
|
whereValue = st + " AND " + et;
|
||||||
} else {
|
} else {
|
||||||
whereValue = String.format(OracleConstants.WHERE_BETWEEN, value.get(0), value.get(1));
|
whereValue = String.format(OracleConstants.WHERE_BETWEEN, value.get(0), value.get(1));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user