提交 6cda486c authored 作者: wangjiahao's avatar wangjiahao

Merge remote-tracking branch 'origin/v1.2' into v1.2

...@@ -7,6 +7,7 @@ public class DeTypeConstants { ...@@ -7,6 +7,7 @@ public class DeTypeConstants {
public final static Integer DE_INT = 2; public final static Integer DE_INT = 2;
public final static Integer DE_FLOAT = 3; public final static Integer DE_FLOAT = 3;
public final static Integer DE_BOOL = 4; public final static Integer DE_BOOL = 4;
public final static Integer DE_Binary = 5; public final static Integer DE_LOCATION = 5;
public final static Integer DE_BINARY = 6;
} }
...@@ -19,6 +19,8 @@ public class DorisConstants extends SQLConstants { ...@@ -19,6 +19,8 @@ public class DorisConstants extends SQLConstants {
public static final String FROM_UNIXTIME = "FROM_UNIXTIME(%s,'%s')"; public static final String FROM_UNIXTIME = "FROM_UNIXTIME(%s,'%s')";
public static final String STR_TO_DATE = "STR_TO_DATE(%s,'%s')";
public static final String CAST = "CAST(%s AS %s)"; public static final String CAST = "CAST(%s AS %s)";
public static final String DEFAULT_DATE_FORMAT = "%Y-%m-%d %H:%i:%S"; public static final String DEFAULT_DATE_FORMAT = "%Y-%m-%d %H:%i:%S";
......
...@@ -686,9 +686,14 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -686,9 +686,14 @@ public class DorisQueryProvider extends QueryProvider {
originName = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getDataeaseName()); originName = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getDataeaseName());
} }
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { if (field.getDeType() == 1) {
String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000"; if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) {
whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT); whereName = String.format(DorisConstants.STR_TO_DATE, originName, DorisConstants.DEFAULT_DATE_FORMAT);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000";
whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT);
}
} else if (field.getDeType() == 0) { } else if (field.getDeType() == 0) {
whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR); whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR);
} else { } else {
...@@ -738,9 +743,14 @@ public class DorisQueryProvider extends QueryProvider { ...@@ -738,9 +743,14 @@ public class DorisQueryProvider extends QueryProvider {
originName = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getDataeaseName()); originName = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getDataeaseName());
} }
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { if (field.getDeType() == 1) {
String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000"; if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) {
whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT); whereName = String.format(DorisConstants.STR_TO_DATE, originName, DorisConstants.DEFAULT_DATE_FORMAT);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000";
whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT);
}
} else if (field.getDeType() == 0) { } else if (field.getDeType() == 0) {
whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR); whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR);
} else { } else {
......
...@@ -19,6 +19,8 @@ public class MySQLConstants extends SQLConstants { ...@@ -19,6 +19,8 @@ public class MySQLConstants extends SQLConstants {
public static final String FROM_UNIXTIME = "FROM_UNIXTIME(%s,'%s')"; public static final String FROM_UNIXTIME = "FROM_UNIXTIME(%s,'%s')";
public static final String STR_TO_DATE = "STR_TO_DATE(%s,'%s')";
public static final String CAST = "CAST(%s AS %s)"; public static final String CAST = "CAST(%s AS %s)";
public static final String DEFAULT_DATE_FORMAT = "%Y-%m-%d %H:%i:%S"; public static final String DEFAULT_DATE_FORMAT = "%Y-%m-%d %H:%i:%S";
......
...@@ -671,9 +671,14 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -671,9 +671,14 @@ public class MysqlQueryProvider extends QueryProvider {
} else { } else {
originName = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); originName = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName());
} }
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { if (field.getDeType() == 1) {
String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000"; if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT); whereName = String.format(MySQLConstants.STR_TO_DATE, originName, MySQLConstants.DEFAULT_DATE_FORMAT);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000";
whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT);
}
} else { } else {
whereName = originName; whereName = originName;
} }
...@@ -721,9 +726,14 @@ public class MysqlQueryProvider extends QueryProvider { ...@@ -721,9 +726,14 @@ public class MysqlQueryProvider extends QueryProvider {
originName = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); originName = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName());
} }
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { if (field.getDeType() == 1) {
String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000"; if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT); whereName = String.format(MySQLConstants.STR_TO_DATE, originName, MySQLConstants.DEFAULT_DATE_FORMAT);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000";
whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT);
}
} else { } else {
whereName = originName; whereName = originName;
} }
......
...@@ -645,7 +645,7 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -645,7 +645,7 @@ public class OracleQueryProvider extends QueryProvider {
stringBuilder.append(" \"").append(f.getOriginName()).append("\""); stringBuilder.append(" \"").append(f.getOriginName()).append("\"");
return stringBuilder.toString(); return stringBuilder.toString();
}).toArray(String[]::new); }).toArray(String[]::new);
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), " (" + sqlFix(sql) + ") DE_TMP " ); return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), " (" + sqlFix(sql) + ") DE_TMP ");
} }
public String transMysqlFilterTerm(String term) { public String transMysqlFilterTerm(String term) {
...@@ -706,9 +706,14 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -706,9 +706,14 @@ public class OracleQueryProvider extends QueryProvider {
originName = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); originName = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName());
} }
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { if (field.getDeType() == 1) {
String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000"; if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT); whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000";
whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT);
}
} else { } else {
whereName = originName; whereName = originName;
} }
...@@ -721,7 +726,11 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -721,7 +726,11 @@ public class OracleQueryProvider extends QueryProvider {
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
whereValue = "'%" + value + "%'"; whereValue = "'%" + value + "%'";
} else { } else {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value); if (field.getDeType() == 1) {
whereValue = String.format(OracleConstants.TO_DATE, "'" + value + "'", OracleConstants.DEFAULT_DATE_FORMAT);
} else {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value);
}
} }
list.add(SQLObj.builder() list.add(SQLObj.builder()
.whereField(whereName) .whereField(whereName)
...@@ -756,9 +765,14 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -756,9 +765,14 @@ public class OracleQueryProvider extends QueryProvider {
originName = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); originName = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName());
} }
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { if (field.getDeType() == 1) {
String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000"; if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT); whereName = String.format(OracleConstants.TO_DATE, originName, OracleConstants.DEFAULT_DATE_FORMAT);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000";
whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT);
}
} else { } else {
whereName = originName; whereName = originName;
} }
...@@ -772,7 +786,9 @@ public class OracleQueryProvider extends QueryProvider { ...@@ -772,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));
} }
......
...@@ -19,6 +19,8 @@ public class PgConstants extends SQLConstants { ...@@ -19,6 +19,8 @@ public class PgConstants extends SQLConstants {
public static final String FROM_UNIXTIME = "to_timestamp(%s)"; public static final String FROM_UNIXTIME = "to_timestamp(%s)";
public static final String TO_DATE = "to_date(%s,'%s')";
public static final String CAST = "CAST(%s AS %s)"; public static final String CAST = "CAST(%s AS %s)";
public static final String DEFAULT_DATE_FORMAT = "'YYYY-MM-DD HH24:MI:SS'"; public static final String DEFAULT_DATE_FORMAT = "'YYYY-MM-DD HH24:MI:SS'";
......
...@@ -13,6 +13,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO; ...@@ -13,6 +13,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.dto.sqlObj.SQLObj; import io.dataease.dto.sqlObj.SQLObj;
import io.dataease.provider.QueryProvider; import io.dataease.provider.QueryProvider;
import io.dataease.provider.SQLConstants; import io.dataease.provider.SQLConstants;
import io.dataease.provider.mysql.MySQLConstants;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -73,7 +74,7 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -73,7 +74,7 @@ public class SqlserverQueryProvider extends QueryProvider {
case "TINYINT": case "TINYINT":
return DeTypeConstants.DE_BOOL;// 布尔 return DeTypeConstants.DE_BOOL;// 布尔
case "TIMESTAMP": case "TIMESTAMP":
return DeTypeConstants.DE_Binary;// 二进制 return DeTypeConstants.DE_BINARY;// 二进制
default: default:
return DeTypeConstants.DE_STRING; return DeTypeConstants.DE_STRING;
} }
...@@ -91,7 +92,7 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -91,7 +92,7 @@ public class SqlserverQueryProvider extends QueryProvider {
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build(); .build();
setSchema(tableObj,ds); setSchema(tableObj, ds);
List<SQLObj> xFields = new ArrayList<>(); List<SQLObj> xFields = new ArrayList<>();
if (CollectionUtils.isNotEmpty(fields)) { if (CollectionUtils.isNotEmpty(fields)) {
...@@ -159,12 +160,12 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -159,12 +160,12 @@ public class SqlserverQueryProvider extends QueryProvider {
@Override @Override
public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit, boolean isGroup, Datasource ds) { public String createQueryTableWithLimit(String table, List<DatasetTableField> fields, Integer limit, boolean isGroup, Datasource ds) {
return createQuerySQL(table, fields, isGroup, ds) + " ORDER BY \"" + fields.get(0).getOriginName() + "\" offset 0 rows fetch next " + limit + " rows only"; return createQuerySQL(table, fields, isGroup, ds) + " ORDER BY \"" + fields.get(0).getOriginName() + "\" offset 0 rows fetch next " + limit + " rows only";
} }
@Override @Override
public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit, boolean isGroup) { public String createQuerySqlWithLimit(String sql, List<DatasetTableField> fields, Integer limit, boolean isGroup) {
return createQuerySQLAsTmp(sql, fields, isGroup) + " ORDER BY \"" + fields.get(0).getOriginName() + "\" offset 0 rows fetch next " + limit + " rows only"; return createQuerySQLAsTmp(sql, fields, isGroup) + " ORDER BY \"" + fields.get(0).getOriginName() + "\" offset 0 rows fetch next " + limit + " rows only";
} }
@Override @Override
...@@ -173,7 +174,7 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -173,7 +174,7 @@ public class SqlserverQueryProvider extends QueryProvider {
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build(); .build();
setSchema(tableObj,ds); setSchema(tableObj, ds);
List<SQLObj> xFields = new ArrayList<>(); List<SQLObj> xFields = new ArrayList<>();
List<SQLObj> xWheres = new ArrayList<>(); List<SQLObj> xWheres = new ArrayList<>();
List<SQLObj> xOrders = new ArrayList<>(); List<SQLObj> xOrders = new ArrayList<>();
...@@ -270,7 +271,7 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -270,7 +271,7 @@ public class SqlserverQueryProvider extends QueryProvider {
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build(); .build();
setSchema(tableObj,ds); setSchema(tableObj, ds);
List<SQLObj> xFields = new ArrayList<>(); List<SQLObj> xFields = new ArrayList<>();
List<SQLObj> xWheres = new ArrayList<>(); List<SQLObj> xWheres = new ArrayList<>();
List<SQLObj> xOrders = new ArrayList<>(); List<SQLObj> xOrders = new ArrayList<>();
...@@ -388,7 +389,7 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -388,7 +389,7 @@ public class SqlserverQueryProvider extends QueryProvider {
.tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table))
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build(); .build();
setSchema(tableObj,ds); setSchema(tableObj, ds);
List<SQLObj> xFields = new ArrayList<>(); List<SQLObj> xFields = new ArrayList<>();
List<SQLObj> xWheres = new ArrayList<>(); List<SQLObj> xWheres = new ArrayList<>();
List<SQLObj> xOrders = new ArrayList<>(); List<SQLObj> xOrders = new ArrayList<>();
...@@ -588,11 +589,11 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -588,11 +589,11 @@ public class SqlserverQueryProvider extends QueryProvider {
stringBuilder.append("\"").append(f.getOriginName()).append("\" AS ").append(f.getDataeaseName()); stringBuilder.append("\"").append(f.getOriginName()).append("\" AS ").append(f.getDataeaseName());
return stringBuilder.toString(); return stringBuilder.toString();
}).toArray(String[]::new); }).toArray(String[]::new);
if(ds != null){ if (ds != null) {
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema(); String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema();
String tableWithSchema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema) + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table); String tableWithSchema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema) + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table);
return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), tableWithSchema); return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), tableWithSchema);
}else { } else {
return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table); return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table);
} }
} }
...@@ -651,9 +652,15 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -651,9 +652,15 @@ public class SqlserverQueryProvider extends QueryProvider {
String whereTerm = transMysqlFilterTerm(request.getTerm()); String whereTerm = transMysqlFilterTerm(request.getTerm());
String whereValue = ""; String whereValue = "";
String originName = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); String originName = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName());
if (field.getDeType() == DeTypeConstants.DE_TIME && field.getDeExtractType() != DeTypeConstants.DE_TIME) {
String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000"); if (field.getDeType() == 1) {
whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast); if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
whereName = String.format(SqlServerSQLConstants.STRING_TO_DATE, originName);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000");
whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast);
}
} else { } else {
whereName = originName; whereName = originName;
} }
...@@ -692,9 +699,14 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -692,9 +699,14 @@ public class SqlserverQueryProvider extends QueryProvider {
String whereValue = ""; String whereValue = "";
String originName = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); String originName = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName());
if (field.getDeType() == 1 && field.getDeExtractType() != 1) { if (field.getDeType() == 1) {
String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000"); if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) {
whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast); whereName = String.format(SqlServerSQLConstants.STRING_TO_DATE, originName);
}
if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) {
String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000");
whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast);
}
} else { } else {
whereName = originName; whereName = originName;
} }
...@@ -744,30 +756,30 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -744,30 +756,30 @@ public class SqlserverQueryProvider extends QueryProvider {
case "y": case "y":
return "CONVERT(varchar(100), datepart(yy, " + originField + "))"; return "CONVERT(varchar(100), datepart(yy, " + originField + "))";
case "y_M": case "y_M":
if(split.equalsIgnoreCase("-")){ if (split.equalsIgnoreCase("-")) {
return "substring( convert(varchar," + originField + ",120),1,7)"; return "substring( convert(varchar," + originField + ",120),1,7)";
}else { } else {
return "replace("+ "substring( convert(varchar," + originField + ",120),1,7), '-','/')"; return "replace(" + "substring( convert(varchar," + originField + ",120),1,7), '-','/')";
} }
case "y_M_d": case "y_M_d":
if(split.equalsIgnoreCase("-")){ if (split.equalsIgnoreCase("-")) {
return "CONVERT(varchar(100), " + originField + ", 23)"; return "CONVERT(varchar(100), " + originField + ", 23)";
}else { } else {
return "CONVERT(varchar(100), " + originField + ", 111)"; return "CONVERT(varchar(100), " + originField + ", 111)";
} }
case "H_m_s": case "H_m_s":
return "CONVERT(varchar(100), " + originField + ", 8)"; return "CONVERT(varchar(100), " + originField + ", 8)";
case "y_M_d_H_m": case "y_M_d_H_m":
if(split.equalsIgnoreCase("-")){ if (split.equalsIgnoreCase("-")) {
return "substring( convert(varchar," + originField + ",120),1,16)"; return "substring( convert(varchar," + originField + ",120),1,16)";
}else { } else {
return "replace("+ "substring( convert(varchar," + originField + ",120),1,16), '-','/')"; return "replace(" + "substring( convert(varchar," + originField + ",120),1,16), '-','/')";
} }
case "y_M_d_H_m_s": case "y_M_d_H_m_s":
if(split.equalsIgnoreCase("-")){ if (split.equalsIgnoreCase("-")) {
return "convert(varchar," + originField + ",120)"; return "convert(varchar," + originField + ",120)";
}else { } else {
return "replace("+ "convert(varchar," + originField + ",120), '-','/')"; return "replace(" + "convert(varchar," + originField + ",120), '-','/')";
} }
default: default:
return "convert(varchar," + originField + ",120)"; return "convert(varchar," + originField + ",120)";
...@@ -790,7 +802,7 @@ public class SqlserverQueryProvider extends QueryProvider { ...@@ -790,7 +802,7 @@ public class SqlserverQueryProvider extends QueryProvider {
String cast = String.format(SqlServerSQLConstants.STRING_TO_DATE, originField); String cast = String.format(SqlServerSQLConstants.STRING_TO_DATE, originField);
fieldName = transDateFormat(x.getDateStyle(), x.getDatePattern(), cast); fieldName = transDateFormat(x.getDateStyle(), x.getDatePattern(), cast);
} else {// 数值转时间 } else {// 数值转时间
String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originField+ "/1000"); String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originField + "/1000");
fieldName = transDateFormat(x.getDateStyle(), x.getDatePattern(), cast); fieldName = transDateFormat(x.getDateStyle(), x.getDatePattern(), cast);
} }
} else { } else {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论