请问oracle参数怎么等于时间控件的上一个月

${if(len(start_time) == 0,"","and SUBSTR(T1.H_CPERIOD,1,7) = '" +start_time+ "'")}

我把SUBSTR(T1.H_CPERIOD,1,7)用add_mmonth 处理一下不行,因为再${}里面,得用帆软得函数,然后我改成这样也不行

${if(len(start_time) == 0,"","and SUBSTR(T1.H_CPERIOD,1,7) = '" +MONTHDELTA(start_time ,-1)+ "'")}也不行

注:SUBSTR(T1.H_CPERIOD,1,7)和start_time均为字符串

FineReport 麦兜的兜 发布于 2023-2-21 16:13
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-21 16:18

${if(len(start_time) == 0,"","and SUBSTR(T1.H_CPERIOD,1,7) = '" +FORMAT(DATEDELTA(start_time,-1),"yyyy-MM")+ "'")}

  • 麦兜的兜 麦兜的兜(提问者) start_time是yyyy-MM就不行了
    2023-02-27 11:31 
  • Z4u3z1 Z4u3z1 回复 麦兜的兜(提问者) 用CONCATENATE()拼成日期就行了 FORMAT(DATEDELTA(CONCATENATE($start_time,\"-01\"),-1),\"yyyy-MM\")
    2023-02-27 11:33 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-2-21 16:18

${if(len(start_time) == 0,"","and SUBSTR(T1.H_CPERIOD,1,7) = '" +FORMAT(MONTHDELTA(start_time ,-1),"yyyy-MM")+ "'")}

image.png

最佳回答
0
YmengLv5中级互助
发布于2023-2-21 16:20

改成这样

${if(len(start_time) == 0,"","and to_char(add_months(to_date(SUBSTR(T1.H_CPERIOD,1,7),'YYYY-MM'),1),'YYYY-MM') = '" +start_time+ "'")}

  • 麦兜的兜 麦兜的兜(提问者) start_time是yyyy-MM就不行了
    2023-02-27 11:31 
  • Ymeng Ymeng 回复 麦兜的兜(提问者) 什么意思,start_time是时间类型,不是字符串?
    2023-02-27 11:36 
  • Ymeng Ymeng 回复 麦兜的兜(提问者) 我处理方式跟楼上的不一样,我是对T1.H_CPERIOD字段做处理,处理后的格式就是yyyy-mm,跟start_time格式一样的
    2023-02-27 11:42 
  • 3关注人数
  • 385浏览人数
  • 最后回答于:2023-2-21 16:20
    请选择关闭问题的原因
    确定 取消
    返回顶部