参数不匹配吗可是我都格式化了呀

${IF(LEN(sdate)=0,"","and to_date(start_date,'YYYY-MM-DD')>=to_date('"+sdate+"','YYYY-MM-DD')")}

${IF(LEN(edate)=0,"","and to_date(end_date,'YYYY-MM-DD')<=to_date('"+edate+"','YYYY-MM-DD')")}

FineReport 3333xzx 发布于 2023-1-4 10:27 (编辑于 2023-1-4 10:34)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-1-4 10:36(编辑于 2023-1-4 10:39)

如果你的end_date已经是日期格式了,那么不用再套to_date了

直接

${IF(LEN(sdate)=0,"","and start_date>=to_date('"+sdate+"','YYYY-MM-DD')")}

${IF(LEN(edate)=0,"","and end_date<=to_date('"+edate+"','YYYY-MM-DD')")}

如果是varchar的格式

${IF(LEN(sdate)=0,"","and start_date>='"+sdate+"'")}

${IF(LEN(edate)=0,"","and end_date<='"+edate+"'")}

  • 3333xzx 3333xzx(提问者) 数据库里是varchar呀
    2023-01-04 10:38 
  • CD20160914 CD20160914 回复 3333xzx(提问者) 如果是varchar,那么改成上面的。再看上面修改的
    2023-01-04 10:39 
  • CD20160914 CD20160914 回复 3333xzx(提问者) 文本的日期,它也可以直接比较大小的。数据库里面大部分都有一个隐式转换的
    2023-01-04 10:41 
  • 3333xzx 3333xzx(提问者) 回复 CD20160914 噢。。
    2023-01-04 10:42 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-1-4 10:28

SQL呢?

  • 3333xzx 3333xzx(提问者) 好啦
    2023-01-04 10:34 
  • Z4u3z1 Z4u3z1 回复 3333xzx(提问者) 是不是 大小写原因 yyyy-mm-dd
    2023-01-04 10:38 
最佳回答
0
LTC朝Lv6高级互助
发布于2023-1-4 10:28(编辑于 2023-1-4 10:30)

https://bbs.fanruan.com/wenda/question/54495.html

检查一下数据库字段类型与参数输入的类型是否一致,尤其是日期类的数据

最佳回答
0
其实我是宁采臣Lv4见习互助
发布于2023-1-4 10:30

SQL是不是有一些类型转换,比如 to_char to_date 之类的,类型有问题。要把SQL及对应字段类型放出来才行

  • 2关注人数
  • 334浏览人数
  • 最后回答于:2023-1-4 10:39
    请选择关闭问题的原因
    确定 取消
    返回顶部