(fix)(semantic) Fixed monday time fetch under MysqlAdaptor (#340)

This commit is contained in:
yangde
2023-11-09 10:30:02 +08:00
committed by GitHub
parent 94fa86629d
commit 67f658ced2

View File

@@ -16,7 +16,7 @@ public class MysqlAdaptor extends EngineAdaptor {
if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) { if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) {
return "DATE_FORMAT(%s, '%Y-%m')".replace("%s", column); return "DATE_FORMAT(%s, '%Y-%m')".replace("%s", column);
} else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) { } else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) {
return "to_monday(from_unixtime(unix_timestamp(%s), 'yyyy-MM-dd'))".replace("%s", column); return "DATE_FORMAT(DATE_SUB(%s, INTERVAL (DAYOFWEEK(%s) - 2) DAY), '%Y-%m-%d')".replace("%s", column);
} else { } else {
return "date_format(str_to_date(%s, '%Y%m%d'),'%Y-%m-%d')".replace("%s", column); return "date_format(str_to_date(%s, '%Y%m%d'),'%Y-%m-%d')".replace("%s", column);
} }
@@ -24,7 +24,7 @@ public class MysqlAdaptor extends EngineAdaptor {
if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) { if (TimeDimensionEnum.MONTH.name().equalsIgnoreCase(dateType)) {
return "DATE_FORMAT(%s, '%Y-%m') ".replace("%s", column); return "DATE_FORMAT(%s, '%Y-%m') ".replace("%s", column);
} else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) { } else if (TimeDimensionEnum.WEEK.name().equalsIgnoreCase(dateType)) {
return "to_monday(from_unixtime(unix_timestamp(%s), 'yyyy-MM-dd'))".replace("%s", column); return "DATE_FORMAT(DATE_SUB(%s, INTERVAL (DAYOFWEEK(%s) - 2) DAY), '%Y-%m-%d')".replace("%s", column);
} else { } else {
return column; return column;
} }