数据集使用betweenand查询月份之间的数据,结果查询的结果不包含起始月份的

数据集使用between and查询月份之间的数据,结果查询的结果不包含起始月份的,比如我查询的时间段是2020-06到2020-12,结果出来的数据是从2020-07到2020-12。

数据集脚本:

select 

a.* 

from (

(SELECT lcfwkkd_month_x lcfwkkd,'线网' AS line, date_format( selectDate, '%Y-%m' ) selectDate FROM tb_company_month_service)

)a 

where 

1=1

${if(len(dateEditor9) == 0,""," and a.selectDate BETWEEN '" + dateEditor9 + "'")}

${if(len(dateEditor10) == 0,""," AND '" + dateEditor10 + "'")}

order by a.selectDate asc,a.line


在mysql中单独执行就是正常的:

image.png

FineReport 云卷云舒China 发布于 2020-12-7 13:23 (编辑于 2020-12-7 13:34)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
云卷云舒ChinaLv3见习互助
发布于2020-12-10 09:29
注意事项,使用between...and...,如果查询的是跨度到月份的,制包含就开始月份,不包含终止月份,加上终止月份
select 
    a.*
from 
(
    (SELECTyxtscs_number_x yxtscs_number,'线网' AS line,selectDate  FROM tb_plan_dept)union
    (SELECTyxtscs_number_1 yxtscs_number,'1号线' AS line,selectDate  FROM tb_plan_dept)union
    (SELECTyxtscs_number_2 yxtscs_number,'2号线' AS line,selectDate  FROM tb_plan_dept)union
    (SELECTyxtscs_number_3 yxtscs_number,'3号线' AS line,selectDate  FROM tb_plan_dept)union
    (SELECTyxtscs_number_5 yxtscs_number,'4号线' AS line,selectDate  FROM tb_plan_dept)
 )a 
where 
((date_format(a.selectDate,'%Y-%m-%d') ${if(len(startDate) == 0,""," BETWEEN '" + startDate+ "' AND '" + endDate+ "'")})
or (date_format(a.selectDate, "%Y-%m" ) ${if(len(endDate) == 0,""," = '"+endDate+"'")}))
${if(len(line) == 0,""," and a.line = '" + line + "'")}


最佳回答
0
krystal033Lv7高级互助
发布于2020-12-7 13:23(编辑于 2020-12-7 13:37)
${if(len(dateEditor9) == 0,"","and a.selectDate >= ('" + dateEditor9 + "')")}
${if(len(dateEditor10) == 0,"","and a.selectDate <= ('" + dateEditor10  + "')")}	

包含的  是你的数据有问题吧

最佳回答
0
snrtuemcLv8专家互助
发布于2020-12-7 13:39
select 
	a.* 
from (
(SELECT	lcfwkkd_month_x lcfwkkd,'线网' AS line,	date_format( selectDate, '%Y-%m-%d' ) selectDate FROM	tb_company_month_service)
	)a 
where 
	1=1
	${if(len(dateEditor9) == 0,""," and a.selectDate BETWEEN '" + dateinmonth(dateEditor9+"-01",1) + "'")}
	${if(len(dateEditor10) == 0,""," AND '" + dateinmonth(dateEditor10+"-01",-1) + "'")}
order by a.selectDate asc,a.line


最佳回答
0
shirokoLv6资深互助
发布于2020-12-7 13:40

参数格式一样吗?我猜你的 dateEditor9  dateEditor10的参数格式是 2020-06-01,2020-12-01这样的

  • 3关注人数
  • 300浏览人数
  • 最后回答于:2020-12-10 09:29
    请选择关闭问题的原因
    确定 取消
    返回顶部