From 2d367809d7546eab58ce4a930396a7051698d8f6 Mon Sep 17 00:00:00 2001 From: junjie Date: Wed, 1 Sep 2021 11:55:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E6=BA=90=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=AE=A1=E7=AE=97=E8=BF=87=E6=BB=A4=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/constants/DeTypeConstants.java | 3 +- .../provider/doris/DorisConstants.java | 2 + .../provider/doris/DorisQueryProvider.java | 22 ++- .../provider/mysql/MySQLConstants.java | 2 + .../provider/mysql/MysqlQueryProvider.java | 22 ++- .../provider/oracle/OracleQueryProvider.java | 24 ++- .../io/dataease/provider/pg/PgConstants.java | 2 + .../dataease/provider/pg/PgQueryProvider.java | 151 ++++++++++-------- .../sqlserver/SqlserverQueryProvider.java | 66 ++++---- 9 files changed, 176 insertions(+), 118 deletions(-) diff --git a/backend/src/main/java/io/dataease/commons/constants/DeTypeConstants.java b/backend/src/main/java/io/dataease/commons/constants/DeTypeConstants.java index 50a925c2ee..a03ca54f05 100644 --- a/backend/src/main/java/io/dataease/commons/constants/DeTypeConstants.java +++ b/backend/src/main/java/io/dataease/commons/constants/DeTypeConstants.java @@ -7,6 +7,7 @@ public class DeTypeConstants { public final static Integer DE_INT = 2; public final static Integer DE_FLOAT = 3; 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; } diff --git a/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java b/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java index fda5ea41ef..22792a429e 100644 --- a/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java +++ b/backend/src/main/java/io/dataease/provider/doris/DorisConstants.java @@ -19,6 +19,8 @@ public class DorisConstants extends SQLConstants { 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 DEFAULT_DATE_FORMAT = "%Y-%m-%d %H:%i:%S"; diff --git a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java index 8fe11624f3..c1169c8fb5 100644 --- a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java @@ -686,9 +686,14 @@ public class DorisQueryProvider extends QueryProvider { originName = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getDataeaseName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000"; - whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) { + 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) { whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR); } else { @@ -738,9 +743,14 @@ public class DorisQueryProvider extends QueryProvider { originName = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getDataeaseName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format(DorisConstants.CAST, originName, DorisConstants.DEFAULT_INT_FORMAT) + "/1000"; - whereName = String.format(DorisConstants.FROM_UNIXTIME, cast, DorisConstants.DEFAULT_DATE_FORMAT); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) { + 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) { whereName = String.format(DorisConstants.CAST, originName, DorisConstants.VARCHAR); } else { diff --git a/backend/src/main/java/io/dataease/provider/mysql/MySQLConstants.java b/backend/src/main/java/io/dataease/provider/mysql/MySQLConstants.java index bf1c9d950d..8ab8567e2d 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MySQLConstants.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MySQLConstants.java @@ -19,6 +19,8 @@ public class MySQLConstants extends SQLConstants { 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 DEFAULT_DATE_FORMAT = "%Y-%m-%d %H:%i:%S"; diff --git a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java index 7d95965a19..8661579cf1 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java @@ -671,9 +671,14 @@ public class MysqlQueryProvider extends QueryProvider { } else { originName = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000"; - whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + 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 { whereName = originName; } @@ -721,9 +726,14 @@ public class MysqlQueryProvider extends QueryProvider { originName = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format(MySQLConstants.CAST, originName, MySQLConstants.DEFAULT_INT_FORMAT) + "/1000"; - whereName = String.format(MySQLConstants.FROM_UNIXTIME, cast, MySQLConstants.DEFAULT_DATE_FORMAT); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + 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 { whereName = originName; } diff --git a/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java b/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java index fb66621274..97447177f0 100644 --- a/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java @@ -645,7 +645,7 @@ public class OracleQueryProvider extends QueryProvider { stringBuilder.append(" \"").append(f.getOriginName()).append("\""); return stringBuilder.toString(); }).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) { @@ -706,9 +706,14 @@ public class OracleQueryProvider extends QueryProvider { originName = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000"; - whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) { + 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 { whereName = originName; } @@ -756,9 +761,14 @@ public class OracleQueryProvider extends QueryProvider { originName = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_INT_FORMAT) + "/1000"; - whereName = String.format(OracleConstants.FROM_UNIXTIME, cast, OracleConstants.DEFAULT_DATE_FORMAT); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) { + 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 { whereName = originName; } diff --git a/backend/src/main/java/io/dataease/provider/pg/PgConstants.java b/backend/src/main/java/io/dataease/provider/pg/PgConstants.java index e9f9555ae3..1fcf7f0d8e 100644 --- a/backend/src/main/java/io/dataease/provider/pg/PgConstants.java +++ b/backend/src/main/java/io/dataease/provider/pg/PgConstants.java @@ -19,6 +19,8 @@ public class PgConstants extends SQLConstants { 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 DEFAULT_DATE_FORMAT = "'YYYY-MM-DD HH24:MI:SS'"; diff --git a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java index 9944e3b1b8..5bdc712e38 100644 --- a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java @@ -32,7 +32,6 @@ import java.util.regex.Pattern; import static io.dataease.provider.SQLConstants.TABLE_ALIAS_PREFIX; - @Service("pgQuery") public class PgQueryProvider extends QueryProvider { @Resource @@ -86,7 +85,7 @@ public class PgQueryProvider extends QueryProvider { case "TINYINT": return DeTypeConstants.DE_BOOL;// 布尔 case "bytea": - return DeTypeConstants.DE_Binary;// 二进制 + return DeTypeConstants.DE_BINARY;// 二进制 default: return DeTypeConstants.DE_STRING; } @@ -100,11 +99,11 @@ public class PgQueryProvider extends QueryProvider { @Override public String createQuerySQL(String table, List fields, boolean isGroup, Datasource ds) { SQLObj tableObj = SQLObj.builder() - .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) + .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fields)) { for (int i = 0; i < fields.size(); i++) { @@ -114,35 +113,35 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(f.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(f.getExtField()) && f.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), f.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), f.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), f.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), f.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); String fieldName = ""; // 处理横轴字段 if (f.getDeExtractType() == DeTypeConstants.DE_TIME) { if (f.getDeType() == DeTypeConstants.DE_INT || f.getDeType() == DeTypeConstants.DE_FLOAT) { - fieldName = String.format( PgConstants.UNIX_TIMESTAMP, originField); + fieldName = String.format(PgConstants.UNIX_TIMESTAMP, originField); } else { fieldName = originField; } } else if (f.getDeExtractType() == DeTypeConstants.DE_STRING) { if (f.getDeType() == DeTypeConstants.DE_INT) { - fieldName = String.format( PgConstants.CAST, originField, PgConstants.DEFAULT_INT_FORMAT); + fieldName = String.format(PgConstants.CAST, originField, PgConstants.DEFAULT_INT_FORMAT); } else if (f.getDeType() == DeTypeConstants.DE_FLOAT) { - fieldName = String.format( PgConstants.CAST, originField, PgConstants.DEFAULT_FLOAT_FORMAT); + fieldName = String.format(PgConstants.CAST, originField, PgConstants.DEFAULT_FLOAT_FORMAT); } else if (f.getDeType() == DeTypeConstants.DE_TIME) { - fieldName = String.format( PgConstants.CAST, originField, "timestamp"); + fieldName = String.format(PgConstants.CAST, originField, "timestamp"); } else { fieldName = originField; } } else { if (f.getDeType() == DeTypeConstants.DE_TIME) { - String cast = String.format( PgConstants.CAST, originField, "bigint"); - fieldName = String.format( PgConstants.FROM_UNIXTIME, cast ); + String cast = String.format(PgConstants.CAST, originField, "bigint"); + fieldName = String.format(PgConstants.FROM_UNIXTIME, cast); } else if (f.getDeType() == DeTypeConstants.DE_INT) { - fieldName = String.format( PgConstants.CAST, originField, PgConstants.DEFAULT_INT_FORMAT); + fieldName = String.format(PgConstants.CAST, originField, PgConstants.DEFAULT_INT_FORMAT); } else { fieldName = originField; } @@ -190,10 +189,10 @@ public class PgQueryProvider extends QueryProvider { @Override public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds) { SQLObj tableObj = SQLObj.builder() - .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) + .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -205,9 +204,9 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(x.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 @@ -235,9 +234,9 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(y.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); // 处理纵轴字段 @@ -285,7 +284,7 @@ public class PgQueryProvider extends QueryProvider { ST st = stg.getInstanceOf("querySql"); SQLObj tableSQL = SQLObj.builder() - .tableName(String.format( PgConstants.BRACKETS, sql)) + .tableName(String.format(PgConstants.BRACKETS, sql)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 1)) .build(); if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); @@ -303,10 +302,10 @@ public class PgQueryProvider extends QueryProvider { @Override public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds) { SQLObj tableObj = SQLObj.builder() - .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) + .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -321,9 +320,9 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(x.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 @@ -351,9 +350,9 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(y.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); // 处理纵轴字段 @@ -401,7 +400,7 @@ public class PgQueryProvider extends QueryProvider { ST st = stg.getInstanceOf("querySql"); SQLObj tableSQL = SQLObj.builder() - .tableName(String.format( PgConstants.BRACKETS, sql)) + .tableName(String.format(PgConstants.BRACKETS, sql)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 1)) .build(); if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); @@ -418,10 +417,10 @@ public class PgQueryProvider extends QueryProvider { @Override public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds) { SQLObj tableObj = SQLObj.builder() - .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) + .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -433,9 +432,9 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(x.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 @@ -466,9 +465,9 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(y.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); // 处理纵轴字段 @@ -516,7 +515,7 @@ public class PgQueryProvider extends QueryProvider { ST st = stg.getInstanceOf("querySql"); SQLObj tableSQL = SQLObj.builder() - .tableName(String.format( PgConstants.BRACKETS, sql)) + .tableName(String.format(PgConstants.BRACKETS, sql)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 1)) .build(); if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); @@ -539,7 +538,7 @@ public class PgQueryProvider extends QueryProvider { public String getSQLSummary(String table, List yAxis, List customFilter, List extFilterRequestList) { // 字段汇总 排序等 SQLObj tableObj = SQLObj.builder() - .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) + .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); List yFields = new ArrayList<>(); @@ -553,9 +552,9 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(y.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == 1) { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } else { - originField = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); // 处理纵轴字段 @@ -598,7 +597,7 @@ public class PgQueryProvider extends QueryProvider { ST st = stg.getInstanceOf("querySql"); SQLObj tableSQL = SQLObj.builder() - .tableName(String.format( PgConstants.BRACKETS, sql)) + .tableName(String.format(PgConstants.BRACKETS, sql)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 1)) .build(); if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); @@ -629,11 +628,11 @@ public class PgQueryProvider extends QueryProvider { stringBuilder.append("\"").append(f.getOriginName()).append("\" AS ").append(f.getDataeaseName()); return stringBuilder.toString(); }).toArray(String[]::new); - if(ds != null){ + if (ds != null) { String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema(); 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); - }else { + } else { return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table); } } @@ -695,18 +694,23 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originName = calcFieldRegex(field.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 1) { - originName = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); + originName = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } else { - originName = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); + originName = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format( PgConstants.CAST, originName, "bigint"); - whereName = String.format( PgConstants.FROM_UNIXTIME, cast); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(PgConstants.TO_DATE, originName, PgConstants.DEFAULT_DATE_FORMAT); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + String cast = String.format(PgConstants.CAST, originName, "bigint"); + whereName = String.format(PgConstants.FROM_UNIXTIME, cast); + } } else { whereName = originName; } if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) { - whereValue = PgConstants.WHERE_VALUE_NULL; + whereValue = PgConstants.WHERE_VALUE_NULL; } else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) { whereTerm = String.format(whereTerm, originName); } else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) { @@ -714,7 +718,7 @@ public class PgQueryProvider extends QueryProvider { } else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) { whereValue = "'%" + value + "%'"; } else { - whereValue = String.format( PgConstants.WHERE_VALUE_VALUE, value); + whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value); } list.add(SQLObj.builder() .whereField(whereName) @@ -744,14 +748,19 @@ public class PgQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originName = calcFieldRegex(field.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(field.getExtField()) && field.getExtField() == 1) { - originName = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); + originName = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } else { - originName = String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); + originName = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); } - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format( PgConstants.CAST, originName, "bigint"); - whereName = String.format( PgConstants.FROM_UNIXTIME, cast); + if (field.getDeType() == 1) { + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { + whereName = String.format(PgConstants.TO_DATE, originName, PgConstants.DEFAULT_DATE_FORMAT); + } + if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3) { + String cast = String.format(PgConstants.CAST, originName, "bigint"); + whereName = String.format(PgConstants.FROM_UNIXTIME, cast); + } } else { whereName = originName; } @@ -765,12 +774,12 @@ public class PgQueryProvider extends QueryProvider { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0)))); String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1)))); - whereValue = String.format( PgConstants.WHERE_BETWEEN, startTime, endTime); + whereValue = String.format(PgConstants.WHERE_BETWEEN, startTime, endTime); } else { - whereValue = String.format( PgConstants.WHERE_BETWEEN, value.get(0), value.get(1)); + whereValue = String.format(PgConstants.WHERE_BETWEEN, value.get(0), value.get(1)); } } else { - whereValue = String.format( PgConstants.WHERE_VALUE_VALUE, value.get(0)); + whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value.get(0)); } list.add(SQLObj.builder() .whereField(whereName) @@ -817,10 +826,10 @@ public class PgQueryProvider extends QueryProvider { String fieldName = ""; if (x.getDeExtractType() == DeTypeConstants.DE_TIME) { if (x.getDeType() == 2 || x.getDeType() == 3) { - fieldName = String.format( PgConstants.UNIX_TIMESTAMP, originField); + fieldName = String.format(PgConstants.UNIX_TIMESTAMP, originField); } else if (x.getDeType() == DeTypeConstants.DE_TIME) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); - fieldName = String.format( PgConstants.DATE_FORMAT, originField, format); + fieldName = String.format(PgConstants.DATE_FORMAT, originField, format); } else { fieldName = originField; } @@ -828,11 +837,11 @@ public class PgQueryProvider extends QueryProvider { if (x.getDeType() == DeTypeConstants.DE_TIME) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); if (x.getDeExtractType() == DeTypeConstants.DE_STRING) { - fieldName = String.format( PgConstants.DATE_FORMAT, originField, format); + fieldName = String.format(PgConstants.DATE_FORMAT, originField, format); } else { - String cast = String.format( PgConstants.CAST, originField, "bigint"); - String from_unixtime = String.format( PgConstants.FROM_UNIXTIME, cast); - fieldName = String.format( PgConstants.DATE_FORMAT, from_unixtime, format); + String cast = String.format(PgConstants.CAST, originField, "bigint"); + String from_unixtime = String.format(PgConstants.FROM_UNIXTIME, cast); + fieldName = String.format(PgConstants.DATE_FORMAT, from_unixtime, format); } } else { fieldName = originField; @@ -847,17 +856,17 @@ public class PgQueryProvider extends QueryProvider { private SQLObj getYFields(ChartViewFieldDTO y, String originField, String fieldAlias) { String fieldName = ""; if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) { - fieldName = PgConstants.AGG_COUNT; + fieldName = PgConstants.AGG_COUNT; } else if (SQLConstants.DIMENSION_TYPE.contains(y.getDeType())) { - fieldName = String.format( PgConstants.AGG_FIELD, y.getSummary(), originField); + fieldName = String.format(PgConstants.AGG_FIELD, y.getSummary(), originField); } else { if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) { - String cast = String.format( PgConstants.CAST, originField, y.getDeType() == DeTypeConstants.DE_INT ? PgConstants.DEFAULT_INT_FORMAT : PgConstants.DEFAULT_FLOAT_FORMAT); - String agg = String.format( PgConstants.AGG_FIELD, y.getSummary(), cast); - fieldName = String.format( PgConstants.CAST, agg, PgConstants.DEFAULT_FLOAT_FORMAT); + String cast = String.format(PgConstants.CAST, originField, y.getDeType() == DeTypeConstants.DE_INT ? PgConstants.DEFAULT_INT_FORMAT : PgConstants.DEFAULT_FLOAT_FORMAT); + String agg = String.format(PgConstants.AGG_FIELD, y.getSummary(), cast); + fieldName = String.format(PgConstants.CAST, agg, PgConstants.DEFAULT_FLOAT_FORMAT); } else { - String cast = String.format( PgConstants.CAST, originField, y.getDeType() == DeTypeConstants.DE_INT ? PgConstants.DEFAULT_INT_FORMAT : PgConstants.DEFAULT_FLOAT_FORMAT); - fieldName = String.format( PgConstants.AGG_FIELD, y.getSummary(), cast); + String cast = String.format(PgConstants.CAST, originField, y.getDeType() == DeTypeConstants.DE_INT ? PgConstants.DEFAULT_INT_FORMAT : PgConstants.DEFAULT_FLOAT_FORMAT); + fieldName = String.format(PgConstants.AGG_FIELD, y.getSummary(), cast); } } return SQLObj.builder() @@ -874,7 +883,7 @@ public class PgQueryProvider extends QueryProvider { String whereValue = ""; // 原始类型不是时间,在de中被转成时间的字段做处理 if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) { - whereValue = PgConstants.WHERE_VALUE_NULL; + whereValue = PgConstants.WHERE_VALUE_NULL; } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) { whereTerm = String.format(whereTerm, originField); } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { @@ -882,7 +891,7 @@ public class PgQueryProvider extends QueryProvider { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { whereValue = "'%" + f.getValue() + "%'"; } else { - whereValue = String.format( PgConstants.WHERE_VALUE_VALUE, f.getValue()); + whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, f.getValue()); } list.add(SQLObj.builder() .whereField(fieldAlias) @@ -913,7 +922,7 @@ public class PgQueryProvider extends QueryProvider { List calcFields = datasetTableFieldMapper.selectByExample(datasetTableFieldExample); for (DatasetTableField ele : calcFields) { originField = originField.replaceAll("\\[" + ele.getId() + "]", - String.format( PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), ele.getOriginName())); + String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), ele.getOriginName())); } return originField; } diff --git a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java index a9a07b1ce0..6753379231 100644 --- a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java @@ -13,6 +13,7 @@ import io.dataease.dto.chart.ChartViewFieldDTO; import io.dataease.dto.sqlObj.SQLObj; import io.dataease.provider.QueryProvider; import io.dataease.provider.SQLConstants; +import io.dataease.provider.mysql.MySQLConstants; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -73,7 +74,7 @@ public class SqlserverQueryProvider extends QueryProvider { case "TINYINT": return DeTypeConstants.DE_BOOL;// 布尔 case "TIMESTAMP": - return DeTypeConstants.DE_Binary;// 二进制 + return DeTypeConstants.DE_BINARY;// 二进制 default: return DeTypeConstants.DE_STRING; } @@ -91,7 +92,7 @@ public class SqlserverQueryProvider extends QueryProvider { .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fields)) { @@ -159,12 +160,12 @@ public class SqlserverQueryProvider extends QueryProvider { @Override public String createQueryTableWithLimit(String table, List 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 public String createQuerySqlWithLimit(String sql, List 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 @@ -173,7 +174,7 @@ public class SqlserverQueryProvider extends QueryProvider { .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -270,7 +271,7 @@ public class SqlserverQueryProvider extends QueryProvider { .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -388,7 +389,7 @@ public class SqlserverQueryProvider extends QueryProvider { .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - setSchema(tableObj,ds); + setSchema(tableObj, ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -588,11 +589,11 @@ public class SqlserverQueryProvider extends QueryProvider { stringBuilder.append("\"").append(f.getOriginName()).append("\" AS ").append(f.getDataeaseName()); return stringBuilder.toString(); }).toArray(String[]::new); - if(ds != null){ + if (ds != null) { String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema(); 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); - }else { + } else { return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table); } } @@ -651,9 +652,15 @@ public class SqlserverQueryProvider extends QueryProvider { String whereTerm = transMysqlFilterTerm(request.getTerm()); String whereValue = ""; 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"); - whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast); + + if (field.getDeType() == 1) { + 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 { whereName = originName; } @@ -692,9 +699,14 @@ public class SqlserverQueryProvider extends QueryProvider { String whereValue = ""; String originName = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), field.getOriginName()); - if (field.getDeType() == 1 && field.getDeExtractType() != 1) { - String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000"); - whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast); + if (field.getDeType() == 1) { + 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 { whereName = originName; } @@ -744,30 +756,30 @@ public class SqlserverQueryProvider extends QueryProvider { case "y": return "CONVERT(varchar(100), datepart(yy, " + originField + "))"; case "y_M": - if(split.equalsIgnoreCase("-")){ + if (split.equalsIgnoreCase("-")) { return "substring( convert(varchar," + originField + ",120),1,7)"; - }else { - return "replace("+ "substring( convert(varchar," + originField + ",120),1,7), '-','/')"; + } else { + return "replace(" + "substring( convert(varchar," + originField + ",120),1,7), '-','/')"; } case "y_M_d": - if(split.equalsIgnoreCase("-")){ + if (split.equalsIgnoreCase("-")) { return "CONVERT(varchar(100), " + originField + ", 23)"; - }else { + } else { return "CONVERT(varchar(100), " + originField + ", 111)"; } case "H_m_s": return "CONVERT(varchar(100), " + originField + ", 8)"; case "y_M_d_H_m": - if(split.equalsIgnoreCase("-")){ + if (split.equalsIgnoreCase("-")) { return "substring( convert(varchar," + originField + ",120),1,16)"; - }else { - return "replace("+ "substring( convert(varchar," + originField + ",120),1,16), '-','/')"; + } else { + return "replace(" + "substring( convert(varchar," + originField + ",120),1,16), '-','/')"; } case "y_M_d_H_m_s": - if(split.equalsIgnoreCase("-")){ + if (split.equalsIgnoreCase("-")) { return "convert(varchar," + originField + ",120)"; - }else { - return "replace("+ "convert(varchar," + originField + ",120), '-','/')"; + } else { + return "replace(" + "convert(varchar," + originField + ",120), '-','/')"; } default: return "convert(varchar," + originField + ",120)"; @@ -790,7 +802,7 @@ public class SqlserverQueryProvider extends QueryProvider { String cast = String.format(SqlServerSQLConstants.STRING_TO_DATE, originField); fieldName = transDateFormat(x.getDateStyle(), x.getDatePattern(), cast); } 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); } } else {