diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java index ddb29f628..1b5ffcf3d 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/adaptor/db/PostgresqlAdaptor.java @@ -26,19 +26,19 @@ public class PostgresqlAdaptor extends BaseDbAdaptor { public String getDateFormat(String dateType, String dateFormat, String column) { if (dateFormat.equalsIgnoreCase(Constants.DAY_FORMAT_INT)) { if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) { - return "formatDateTime(toDate(parseDateTimeBestEffort(toString(%s))),'%Y-%m')" - .replace("%s", column); + return "to_char(to_date(%s,'yyyymmdd'), 'yyyy-mm')".replace("%s", column); } else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) { - return "toMonday(toDate(parseDateTimeBestEffort(toString(%s))))" + return "to_char(date_trunc('week',to_date(%s, 'yyyymmdd')),'yyyy-mm-dd')" .replace("%s", column); } else { - return "toDate(parseDateTimeBestEffort(toString(%s)))".replace("%s", column); + return "to_char(to_date(%s,'yyyymmdd'), 'yyyy-mm-dd')".replace("%s", column); } } else if (dateFormat.equalsIgnoreCase(Constants.DAY_FORMAT)) { if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) { - return "formatDateTime(toDate(%s),'%Y-%m')".replace("%s", column); + return "to_char(to_date(%s,'yyyy-mm-dd'), 'yyyy-mm')".replace("%s", column); } else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) { - return "toMonday(toDate(%s))".replace("%s", column); + return "to_char(date_trunc('week',to_date(%s, 'yyyy-mm-dd')),'yyyy-mm-dd')" + .replace("%s", column); } else { return column; } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java index 1d84a2851..6b1f421e4 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagQueryServiceImpl.java @@ -43,8 +43,10 @@ public class TagQueryServiceImpl implements TagQueryService { @Value("${s2.item.value.date.format:yyyy-MM-dd}") private String itemValueDateFormat; - private final String tagValueAlias = "internalTagCount"; - private final String maxDateAlias = "internalMaxDate"; + //因有些数据库(如Postgresql)不支持列名大小写,所以列名统一使用小写,以兼容更多数据库 + //private final String tagValueAlias = "internalTagCount"; + private final String tagValueAlias = "internal_tag_count"; + private final String maxDateAlias = "internal_max_date"; private final TagMetaService tagMetaService; private final SemanticLayerService queryService; private final ModelService modelService;