写了一条sql,只筛选日期,预览总是少一个月数据,比如筛选1-3月的数据 只会出现一到二月份的数据,筛选二到四月份,只会出现二到三月份的数据,底层表里每个月都有数据,这是什么原因,这是我日期控件的定义:
WHERE
YHRQ>= '${p_date_beg}' AND YHRQ<= '${p_date_end}'
首先保证控件是yyyy-MM的格式,然后保证数据字段YHRQ也是yyyy-MM的格式,如果字段格式不对的话,需要转换一下
sqlserver的例子:
where convert(varchar(7),YHRQ,23) between '${p_date_beg}' AND '${p_date_end}'
问题的原因应该是日期字段没有限制格式,导致查询条件变成 '2021-02-01'<='2021-02',所以少一个月
你去数据库,按这个语句执行下,看能不能查询出数据
我怀疑,是不是这个200行数据,限制你看不到最后一个月数据
选择4月后日期按4月1日计算了吧,直接的方法就是+1筛选它是按5.1日前计算,之前遇到过具体的场景忘记了
那个控件筛选的吗?昨天给你提示了,你这筛选框做了格式处理 YYYY-MM,你表字段的格式应该是完整的日期格式,直接用时间字段去比对就会少最后一个月。
YHRQ>= '${p_date_beg}' AND YHRQ<= '${LEFT(monthdelta(p_date_end+"-01",1),7)}'