最近查数据,根据年份查数据时,返回结果是一个List<String>,但是神奇的是在都查不出数据时,查2023年结果是一个有一个null数据的list,查2022年时list直接为null。
用的原生jdbc工具查询,代码如下:
String sql = "select xxx from xxx where project_id='" + ycId + "' and data_time>='" + beforeEndTime.substring(0, 7) + "'and data_time<='" + start + "'";
List<String> lastDate = jt.queryForList(sql, String.class);
本来是直接对lastDate进行判断是否为null或者lastDate的size为0来判断是否数据库有数据,但是会出现是一个不为null且拥有一个null数据的list,导致逻辑出现问题。
百思不得其解的时候发现,我搜2023年的时候其实是取2022年12月的数据,数据库中有2022年的数据但是没有这个区间的数据,搜2022年的时候取2021年12月的数据,数据库中压根木有2021年的数据。所以导致查2023年结果是一个有一个null数据的list,查2022年时list直接为null。
至于原因,我现在也不知道。。。