0
rushwei Lv6 见习互助 发布于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\' )\"
}
林夕丶(提问者)
- 这是本周的原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\' )\"
)))}
rushwei 回复 林夕丶(提问者)
- select name from mydate where s_date >= date(adddate(now(),interval -7 day));
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); 将对应字段换掉就行
林夕丶(提问者) 回复 rushwei
- 不是呀,主要是要用$时间数据集参数做日期控件,而且我们这边定义周是每个月1-7号算第一周,8-14第二周,15-21第三周,22到月底第四周
取消
评论