mysql日期查询逻辑怎么写
  1. 当输入第一个日期控件 开始时间:比如:第一个控件的值是2020-8-9  

                                                       第二个控件的值是null  查询2020-8-9之后的数据 比如:2020-8-10的数据

  2. 当输入第二个日期控件 结束时间:比如:第一个控件的值是null  

                                                       第二个控件的值是2020-8-9  查询2020-8-9之前的数据 比如:2020-8-8的数据

  3. 当输入任何一个日期控件:比如:第一个控件的值是2020-8-20 

                                                       第二个控件的值是2020-8-23  查询2020-8-20和2020-8-23之间的数据 image.png

yikefu 发布于 2021-8-9 16:54 (编辑于 2021-8-10 10:32)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
zsh331Lv8专家互助
发布于2022-2-16 10:12

${if(len(日期控件1)=0 && len(日期控件2)!=0," and TT <= '"+日期控件2+"'",

if(len(日期控件1)!=0 && len(日期控件2)=0," and TT >= '"+日期控件1+"'",if(len(日期控件1)!=0 && len(日期控件2)!=0," and TT >= '"+日期控件1+"'"+" and TT <='"+日期控件2+"'","二个控件同时为空时的过滤方法")))}

——————————————————————

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-8-9 16:58

这个需求有点“反人类”,一般情况前面的为开始日期,后面的为结束日期。要统计某个日期之前的数据都是第一个为空,第二个不为空。哪些大爷不合理的需求否掉,避免换一个大爷又出现理解误差,懒得解释

  • yikefu yikefu(提问者) 哈哈哈哈哈哈哈哈哈哈哈 是的 什么鬼需求
    2021-08-09 17:18 
最佳回答
0
LSQ000Lv5中级互助
发布于2021-8-9 17:01

${if(len(日期控件1)==0,if(len(日期控件2)==0,""," and 日期<= '"+日期控件2+"'"),

if(len(日期控件2)==0," and 日期<= '"+日期控件1+"'"," and 日期>= '"+日期控件1+"' and 日期<= '"+日期控件2+"' ")

)}

最佳回答
0
浪兔Lv7初级互助
发布于2021-8-10 10:38(编辑于 2021-8-10 10:40)

不能按照逻辑写sql嘛.无非就是三个条件.判断里面用AND函数.当两个条件同时为真时,拼接相对应的sql

比如:第一个控件的值是2020-8-9  

 第二个控件的值是null  查询2020-8-9之后的数据 比如:2020-8-10的数据

以下的例子,假设第一个控件有值,第二个控件没值.拼接查询日期大于2020-8-9的数据

if(AND(len(开始日期)>0,len(结束日期)=0,'按照逻辑写sql','')

最佳回答
0
liu.yangLv2初级互助
发布于2022-2-16 11:30(编辑于 2022-2-16 11:31)

and 1=1 ${if(len(日期控件1) == 0,"","and 表日期字段>='"+日期控件1+"'")}

and 1=1 ${if(len(日期控件2) == 0,"","and 表日期字段<='"+日期控件2+"'")}

  • 5关注人数
  • 582浏览人数
  • 最后回答于:2022-2-16 11:31
    请选择关闭问题的原因
    确定 取消
    返回顶部