From 6aaeb539d45f34f2bb898ed225284decfa60cb50 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 30 Aug 2022 15:35:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20mysql=20YEA?= =?UTF-8?q?R=20=E7=B1=BB=E5=9E=8B=E6=A0=BC=E5=BC=8F=E5=8C=96=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../query/mysql/MysqlQueryProvider.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index 00cddc4974..b96fc039f1 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -114,7 +114,11 @@ public class MysqlQueryProvider extends QueryProvider { if (f.getDeType() == 2 || f.getDeType() == 3) { fieldName = String.format(MySQLConstants.UNIX_TIMESTAMP, originField) + "*1000"; } else { - fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, MySQLConstants.DEFAULT_DATE_FORMAT); + if(f.getType().equalsIgnoreCase("YEAR")){ + fieldName = String.format(MySQLConstants.DATE_FORMAT, "CONCAT(" + originField + ",'-01-01')", MySQLConstants.DEFAULT_DATE_FORMAT); + }else { + fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, MySQLConstants.DEFAULT_DATE_FORMAT); + } } } else if (f.getDeExtractType() == 0) { if (f.getDeType() == 2) { @@ -167,7 +171,11 @@ public class MysqlQueryProvider extends QueryProvider { if (f.getDeType() == 2 || f.getDeType() == 3) { fieldName = String.format(MySQLConstants.UNIX_TIMESTAMP, originField) + "*1000"; } else { - fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, MySQLConstants.DEFAULT_DATE_FORMAT); + if(f.getType().equalsIgnoreCase("YEAR")){ + fieldName = String.format(MySQLConstants.DATE_FORMAT, "CONCAT(" + originField + ",'-01-01')", MySQLConstants.DEFAULT_DATE_FORMAT); + }else { + fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, MySQLConstants.DEFAULT_DATE_FORMAT); + } } } else if (f.getDeExtractType() == 0) { if (f.getDeType() == 2) { @@ -1125,8 +1133,12 @@ public class MysqlQueryProvider extends QueryProvider { if (x.getDeType() == 2 || x.getDeType() == 3) { fieldName = String.format(MySQLConstants.UNIX_TIMESTAMP, originField) + "*1000"; } else if (x.getDeType() == 1) { - String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); - fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, format); + if(x.getType().equalsIgnoreCase("YEAR")){ + fieldName = String.format(MySQLConstants.DATE_FORMAT, "CONCAT(" + originField + ",'-01-01')", transDateFormat(x.getDateStyle(), x.getDatePattern())); + }else { + String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); + fieldName = String.format(MySQLConstants.DATE_FORMAT, originField, format); + } } else { fieldName = originField; }