表的部分结构如下图:
目前有一个需求,是想要根据年份查询所要查询的年份的所有数据以及所要查询年份的最后一个月的数据(也就是12月),但因为表结构如上图,保存日期的数据是字符串格式的,使用如下sql并不能完成想要达成的效果:
select * from a where (nf >= '2021' and yf = '12') and nf = '2022';
很显然,上图sql仅仅只能查到2021年12月的数据,但把字符串先转成int类型即可进行达成想要的效果,也就是如下的sql:
select * from a where (CAST(nf = 2021 and CAST(yf as int) > 11) or (CAST(nf as int) = 2022;
博客围绕数据库表数据查询需求展开,要查询指定年份的所有数据及该年份12月的数据。因表中日期数据为字符串格式,原SQL无法达成效果,将字符串转成int类型后,新SQL可实现该查询需求。





