表的部分结构如下图:
目前有一个需求,是想要根据年份查询所要查询的年份的所有数据以及所要查询年份的最后一个月的数据(也就是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;