Mybatis查询一段时间内数据,按时间分组,返回时间格式化sql问题

日常查询中sql语句中会带有时间段的条件查询,我举例的数据库中storage_time表示的是时间,storage_channel可以当做商品类型

sql server 只查询半年的数据_jar

查询出来返回时间

sql server 只查询半年的数据_sql server 只查询半年的数据_02

根据时间分组

sql server 只查询半年的数据_sql server 只查询半年的数据_03

完整的sql

sql server 只查询半年的数据_java_04

查询得出的数据

sql server 只查询半年的数据_mysql_05

时间分组效果不是我想要的,12号这一天因为时刻的不同当天又被分成了很多个组,而且查询结果时间这一列格式也不是我想要的,显示的时候把时分秒去掉,所以在显示的时候可以加上格式化

时间格式化:
date_format(storage_time,'%Y-%m-%d') t

更改之后的sql为,storage_time起别名t

sql server 只查询半年的数据_数据库_06

查询结果为,现在就不带时分秒了

sql server 只查询半年的数据_java_07

但是这样去使用在mybatis上会出现问题,接收不到数据,查询出来后返回的时间是null,这让我很奇怪,想了各种办法行不通,但我们依然还是要根据当天的时间分组,分析问题出在查询列表上,显示的时候不能进行时间格式化,分组的时候需要格式化后的时间分组

更新查询sql

sql server 只查询半年的数据_数据库_08

查询结果

sql server 只查询半年的数据_mysql_09

根据查询结果可以看出虽然还是带着时分秒,但是分组下来的结果是正确的,是根据当天的几号分组的,当然返回到业务层的数据也是带着时分秒的,既然已经拿到正确的数据,在业务层或者你的控制层对数据进行一下处理就行。

假如这里拿出第一条数据的时间,截取前10位字符,处理完之后,再封装返回到前端就可以了

sql server 只查询半年的数据_数据库_10