数据库查询日期段

我要查询在2015.4--2016.1月的数据,结果显示了2016.6月份的数据,我的mysql语句出了什么问题吗?帮忙看一下,谢谢


statistics_date_month业务月度

statistics_date_year 业务年份

startmonth开始月份

endmonth结束月份



${if(len(startmonth) == 0,"","and (statistics_date_month >= '" + startmonth"' and statistics_date_year = '" + startyear + "') or (statistics_date_month < '" + startmonth"' and  statistics_date_year > '" + startyear + "') ")}

${if(len(endmonth) == 0,"","and ( statistics_date_month <= '" + endmonth"' and statistics_date_year = '" + endyear + "')  or ( statistics_date_month > '" + endmonth"' and  statistics_date_year < '" + endyear + "')")}

QQ截图20190902140616.png

12083492 发布于 2019-9-2 14:07 (编辑于 2019-9-2 14:10)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
sayLv6初级互助
发布于2019-9-6 09:24

${if(len(startmonth) == 0,"","and( (statistics_date_month >= '" + startmonth+"' and statistics_date_year = '" + startyear + "') or (statistics_date_month < '" + startmonth"' and  statistics_date_year > '" + startyear + "')) ")}

${if(len(endmonth) == 0,"","and (( statistics_date_month <= '" + endmonth+"' and statistics_date_year = '" + endyear + "')  or ( statistics_date_month > '" + endmonth"' and  statistics_date_year < '" + endyear + "'))")}两个or语句应该加上括号的(MySQL中,AND的执行优先级高于OR。也就是说,在没有小括号()的干预下,总是先执行AND语句,再执行OR语句)

image.png

最佳回答
0
firegunzxLv6高级互助
发布于2019-9-2 14:24(编辑于 2019-9-2 14:25)

image.png

这里少加号

  • 12083492 12083492(提问者) 感觉我的这个逻辑也是有问题的吗?改了之后还是有问题,和startyear和startmonth有关系吗
    2019-09-02 14:45 
  • firegunzx firegunzx 回复 12083492(提问者) 看一下日志,看解析出来的sql是什么样的,就知道哪里写错了
    2019-09-02 16:06 
最佳回答
0
指间沙Lv6中级互助
发布于2019-9-3 14:50

image.png

建议你日期控件格式转换成我上面那种,然后直接sql那边between and就可以了。

最佳回答
0
凌建Lv7高级互助
发布于2019-9-6 09:52

(

1=1 ${if(len(strYear) == 0,"","and statistics_date_year >='"+strYear +"'")}

and

1=1 ${if(len(endYear) == 0,"","and statistics_date_year>='"+endYear +"'")}

and

)

and

(

1=1 ${if(len(startmonth) == 0,"","and month>='"+startmonth +"'")}

and

1=1 ${if(len(endmonth) == 0,"","and month>='"+endmonth +"'")}

)



CV大法

  • 5关注人数
  • 454浏览人数
  • 最后回答于:2019-9-6 09:52
    请选择关闭问题的原因
    确定 取消
    返回顶部