关于时间控键的设置问题

请问各位大佬,参数控键为时间,用的是数据集参数,现在要求报表里的数据是截至至查询时间的,这样sql该怎么写呀,比如本周数据,本月数据,之前写的sql是查询时间所在的整个周,整个月的数据,现在要求是本周数据,本月数据只从开始到查询时间为止,这个该怎么写呀

林夕丶 发布于 2020-9-28 09:41 (编辑于 2020-9-28 09:44)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
林夕丶Lv4见习互助
发布于2020-9-28 16:19

where  ${
" b.signature_date >= to_date('"+FORMAT(startdate,'yyyy-MM')+"-1 00:00:00','yyyy-mm-dd hh24:mi:ss' )
and b.signature_date <= to_date(to_char(to_date('"+startdate+"','yyyy-mm-dd'),'yyyy-mm-dd')||' 23:59:59','yyyy-mm-dd hh24:mi:ss' )"
}

最佳回答
0
zsh331Lv8专家互助
发布于2020-9-28 09:44(编辑于 2020-9-28 09:45)
—SQL的where条件,再多卡个《日期字段大于等于查询止日期不就搞定了!
最佳回答
0
rushweiLv6见习互助
发布于2020-9-28 09:57

一个月到未来的活动数据:SELECT * from activity_info t where t.valid='Y' and t.act_date > (SELECT DATE_ADD(now(),INTERVAL -1 MONTH));
一个月内到此刻的活动数据SELECT * from activity_info t where t.valid='Y' and t.act_date between  (SELECT DATE_ADD(now(),INTERVAL -1 MONTH)) and now(); 

将now()换成你的查询时间就可以   周 年 以此类推

  • 林夕丶 林夕丶(提问者) 本月的我已经改好了,主要是本周的不好改,这是我改的本月的sql, where ${ \" b.signature_date >= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-1 00:00:00\',\'yyyy-mm-dd hh24:mi:ss\' ) and b.signature_date <= to_date(to_char(to_date(\'\"+startdate+\"\',\'yyyy-mm-dd\'),\'yyyy-mm-dd\')||\' 23:59:59\',\'yyyy-mm-dd hh24:mi:ss\' )\" }
    2020-09-28 10:22 
  • 林夕丶 林夕丶(提问者) 这是本周的原SQL,我们要求是每月的1-7,8-14,15-21,22-月底为四个周 where ${if(DAY(startdate)<8, \" b.signature_date >= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-1 00:00:00\',\'yyyy-mm-dd hh24:mi:ss\' ) and b.signature_date <= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-7 23:59:59\',\'yyyy-mm-dd hh24:mi:ss\') \", if(and(DAY(startdate)>=8,DAY(startdate)<=14), \" b.signature_date >= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-8 00:00:00\',\'yyyy-mm-dd hh24:mi:ss\' ) and b.signature_date <= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-14 23:59:59\',\'yyyy-mm-dd hh24:mi:ss\') \", if(and(DAY(startdate)>=15,DAY(startdate)<=21), \" b.signature_date >= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-15 00:00:00\',\'yyyy-mm-dd hh24:mi:ss\' ) and b.signature_date <= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-21 23:59:59\',\'yyyy-mm-dd hh24:mi:ss\') \", if(and(DAY(startdate)>=22), \" b.signature_date >= to_date(\'\"+FORMAT(startdate,\'yyyy-MM\')+\"-22 00:00:00\',\'yyyy-mm-dd hh24:mi:ss\' ) and b.signature_date <= to_date(to_char(last_day(to_date(\'\"+startdate+\"\',\'yyyy-mm-dd\')),\'yyyy-mm-dd\')||\' 23:59:59\',\'yyyy-mm-dd hh24:mi:ss\' )\" )))}
    2020-09-28 10:25 
  • rushwei rushwei 回复 林夕丶(提问者) select name from mydate where s_date >= date(adddate(now(),interval -7 day));
    2020-09-28 10:28 
  • rushwei rushwei 回复 林夕丶(提问者) 没这么复杂吧 看的头晕 :查询一周数据 两种方法 :第一:SELECT * FROM table_name WHERE condition1 AND condition2 AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_name);第二:SELECT * FROM table_name WHERE condition1 AND condition2 AND DATE_SUB(CURDATE(), INTERVAL 1 WEEK) <= date(column_name); 将对应字段换掉就行
    2020-09-28 10:33 
  • 林夕丶 林夕丶(提问者) 回复 rushwei 不是呀,主要是要用$时间数据集参数做日期控件,而且我们这边定义周是每个月1-7号算第一周,8-14第二周,15-21第三周,22到月底第四周
    2020-09-28 10:36 
  • 2关注人数
  • 313浏览人数
  • 最后回答于:2020-9-28 16:19
    请选择关闭问题的原因
    确定 取消
    返回顶部