为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:select count(ra.id) as timeCount, DATE_FORMAT(ra.created_date,?) from resource_auth ra where ra.created_date >= ? and ra.created_date < ? group by DATE_FORMAT(ra.created_date,?) order by DATE_FORMAT(ra.created_date,?) ASC
nested exception is org.hibernate.exception.DataException: could not prepare statement
SQL Error: -4080, SQLState: 22000
不是 GROUP BY 表达式
请问这边报错是什么原因,
group by 是不支持DATE_FORMAT(ra.created_date,?)吗?
DATE_FORMAT的掩码不要用参数
修改dm.ini,下面两个参数,重启数据库服务即可
COMPATIBLE_MODE = 4
GROUP_OPT_FLAG = 1
我这边构造了一个表,写了一个类似的GROUP BY语句,是可以的,你的数据库是哪个版本?

DROP TABLE RESOURCE_AUTH;
create table RESOURCE_AUTH(ID INT PRIMARY KEY IDENTITY(1,1),CREATE_DATE VARCHAR(30));
INSERT INTO RESOURCE_AUTH VALUES(‘2021-10-27’);
SELECT
COUNT(*) AS COU,
DATE_FORMAT(CREATE_DATE, ‘YYYY-MM-DD’)
FROM
RESOURCE_AUTH
GROUP BY
DATE_FORMAT(CREATE_DATE, ‘YYYY-MM-DD’)
ORDER BY
DATE_FORMAT(CREATE_DATE, ‘YYYY-MM-DD’) ASC;