这个sql中,年份是不固定的,这个值需要前端传进来,而你的需求场景应该不叫“分组”,叫“分页”可能更合理一些,具体可以尝试这样写:
select * from table_name where
create_time between str_to_date(CANCAT([传入的年份],'.01.01 00:00:00'), '%Y.%m.%d %h:%i:%s')
and str_to_date(CANCAT([传入的年份],'.12.31 23:59:59'), '%Y.%m.%d %h:%i:%s')
使用函数,不同的数据库可能不同,以mysql为例
left(create_time, 4) 取create_time,左起的前4个字符
select xxx from tableName group by left(create_time, 4);
SELECT * FROM (SELECT datename(YEAR , GETDATE()) AS Y )T GROUP BY Y
--将 GETDATE()部分换成你的数据库表的时间字段,然后再 AS Y 后面增加FROM 表名,即可按年份分组