数据类型不匹配

sql语句中RGDT在数据库中是date类型,参数使用的是日期公式,为啥提示返回的是number类型,各种方法都试过了,比如to_dat(rgdt,'yyyy-mm-dd'),或者to_date('${当前日期}','yyyy-mm-dd')111.png

FineReport yzmmCKbb7753545 发布于 2023-2-8 17:06 (编辑于 2023-2-8 17:09)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
YmengLv5中级互助
发布于2023-2-8 17:23

可以换种思路,把RGDT转换为字符串,条件改成 TO_CHAR(RGDT,'YYYY-MM-DD') BETWEEN '${当前日期}' AND '${前六天}'

  • yzmmCKbb7753545 yzmmCKbb7753545(提问者) 这个会返回空白,不报错,但是应该有数据
    2023-02-08 17:27 
  • Ymeng Ymeng 回复 yzmmCKbb7753545(提问者) 当前日期跟前六天写反了,值小的在前面,值大的在后面,这样TO_CHAR(RGDT,\'YYYY-MM-DD\') BETWEEN \'${前六天}\' AND \'${当前日期}\',刚才没发现这个问题
    2023-02-08 17:31 
  • yzmmCKbb7753545 yzmmCKbb7753545(提问者) 回复 Ymeng 感谢,解决了
    2023-02-08 17:39 
最佳回答
1
Z4u3z1Lv6专家互助
发布于2023-2-8 17:08

加单引号 引起来试试 '${前六天}'

image.png

  • yzmmCKbb7753545 yzmmCKbb7753545(提问者) 这种会提示文字与格式字符串不匹配
    2023-02-08 17:12 
  • Z4u3z1 Z4u3z1 回复 yzmmCKbb7753545(提问者) where TO_CHAR(rgdt,\'YYYY-MM-DD\') 试试 https://blog.csdn.net/weixin_30855099/article/details/98714520 oracle不熟 你参考这个链接转格式化一下字段或者转化一下字段格式
    2023-02-08 17:17 
  • yzmmCKbb7753545 yzmmCKbb7753545(提问者) 回复 Z4u3z1 好的,感谢
    2023-02-08 17:31 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-2-8 17:17(编辑于 2023-2-8 17:18)

where 1=1

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

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

在参数中直接录入开始与结束日期,不要用你上面公式设置的,你直接录入比如一个  2023-02-08

-----------如果你有两个参数。你按你上面的公式设置录入--------------

where 1=1

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

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

  • yzmmCKbb7753545 yzmmCKbb7753545(提问者) 我这个是一个变量,直接录入2023-02-08,这种的话,明天在改成2023-02-09?
    2023-02-08 17:18 
  • CD20160914 CD20160914 回复 yzmmCKbb7753545(提问者) 你可以写公式。我只是举例,控件放在参数面板的时候,用户直接录入对应的日期就行了。或者设置公式=today()
    2023-02-08 17:20 
  • CD20160914 CD20160914 回复 yzmmCKbb7753545(提问者) 就按你写的公式录入是可以的。我第二个方式
    2023-02-08 17:20 
  • yzmmCKbb7753545 yzmmCKbb7753545(提问者) 回复 CD20160914 您好,有这个的学习文档链接吗?您这个where 1=1 ${if(len(start_date)=0,\"\",\"and rgdt>=to_date(\'\"+start_date+\"\',\'yyyy-mm-dd\')-6\")} ${if(len(start_date)=0,\"\",\"and rgdt
    2023-02-08 17:30 
  • CD20160914 CD20160914 回复 yzmmCKbb7753545(提问者) 这里:https://help.fanruan.com/finereport/doc-view-4455.html 有解释说明
    2023-02-08 17:32 
  • 3关注人数
  • 291浏览人数
  • 最后回答于:2023-2-8 17:23
    请选择关闭问题的原因
    确定 取消
    返回顶部