在要求输入数字处找到非数字字符

112233.png

SQL语句如下:

select * from DA_OFFICE_SUPPLIES

WHERE

'FBizDate' BETWEEN TO_DATE('${starttime}', 'YYYY-MM-DD') AND TO_DATE('${endtime}', 'YYYY-MM-DD')

这是哪里出错了吗,数据库里日期字段是Date

FineReport 懒惰的奶酪包 发布于 2025-2-26 10:28
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2025-2-26 10:29(编辑于 2025-2-26 10:35)

日期控件的格式对么?

----------

试试

select * from DA_OFFICE_SUPPLIES

WHERE

'FBizDate' BETWEEN '${FORMAT(starttime,"yyyy-MM-dd")}' AND '${FORMAT(endtime,"yyyy-MM-dd")}'

--------

还有这两个日期不能传空值,允许空

select * from DA_OFFICE_SUPPLIES

WHERE 1=1 ${if(len(starttime)=0,""," and FBizDate>='"+FORMAT(starttime,"yyyy-MM-dd")+"'")}${if(len(endtime)=0,""," and FBizDate<='"+FORMAT(endtime,"yyyy-MM-dd")+"'")}

  • 懒惰的奶酪包 懒惰的奶酪包(提问者) 运行不报错了,但是日期筛选完了点击查询,筛选不生效
    2025-02-26 10:59 
  • 懒惰的奶酪包 懒惰的奶酪包(提问者) 数据库是oracle的
    2025-02-26 11:00 
  • Z4u3z1 Z4u3z1 回复 懒惰的奶酪包(提问者) FBizDate在数据库里面是yyyy-MM-dd的格式么?如果不是就to_date()格式化一下
    2025-02-26 11:00 
最佳回答
0
CD20160914Lv8专家互助
发布于2025-2-26 10:39(编辑于 2025-2-26 10:40)

select * from DA_OFFICE_SUPPLIES

where 1=1

${if(len(starttime)=0,"","and FBizDate>=to_date('"+starttime+"','yyyy-mm-dd')")}

${if(len(endtime)=0,"","and FBizDate<to_date('"+endtime+"','yyyy-mm-dd')+1")}

oracle中这样才可以的。因为它和其它数据库转换日期不一样!!FBizDate是日期字段的时候,必须要转换成日期格式才可以,不像其它数据库不用转换

  • 懒惰的奶酪包 懒惰的奶酪包(提问者) 数据库是oracle,运行选了日期筛选就报这个错
    2025-02-26 10:58 
  • CD20160914 CD20160914 回复 懒惰的奶酪包(提问者) 复制我的语句测试看!!!
    2025-02-26 10:59 
  • 懒惰的奶酪包 懒惰的奶酪包(提问者) 回复 CD20160914 试了,还是会报我发的这个错误
    2025-02-26 11:06 
  • CD20160914 CD20160914 回复 懒惰的奶酪包(提问者) 你数据库FBizDate确认是日期格式?date类型?截图我看一下呢
    2025-02-26 11:07 
  • CD20160914 CD20160914 回复 懒惰的奶酪包(提问者) 看一下你的FBizDate这一列是不是有不是标准的日期??
    2025-02-26 11:08 
  • 2关注人数
  • 42浏览人数
  • 最后回答于:2025-2-26 10:40
    请选择关闭问题的原因
    确定 取消
    返回顶部