给你提供一个参考,
where 表中的时间字段>=case
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=1 and to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))<=7 then
to_date(to_char(to_date('$时间参数','yyyy-mm-dd'),'yyyy-mm')||'-01','yyyy-mm-dd')
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=8 and to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))<=14 then
to_date(to_char(to_date('$时间参数','yyyy-mm-dd'),'yyyy-mm')||'-08','yyyy-mm-dd')
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=15 and to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))<=21 then
to_date(to_char(to_date('$时间参数','yyyy-mm-dd'),'yyyy-mm')||'-15','yyyy-mm-dd')
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=22
to_date(to_char(to_date('$时间参数','yyyy-mm-dd'),'yyyy-mm')||'-22','yyyy-mm-dd')
and 表中的时间字段<= case
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=1 and to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))<=7 then
to_date(to_char(to_date('$时间参数','yyyy-mm-dd'),'yyyy-mm')||'-01','yyyy-mm-dd')
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=8 and to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))<=14 then
to_date(to_char(to_date('$时间参数','yyyy-mm-dd'),'yyyy-mm')||'-01','yyyy-mm-dd')
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=15 and to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))<=21 then
to_date(to_char(to_date('$时间参数','yyyy-mm-dd'),'yyyy-mm')||'-01','yyyy-mm-dd')
when to_number(to_char(to_date('$时间参数','yyyy-mm-dd'),'dd'))>=22
last_day((to_date('$时间参数','yyyy-mm-dd'))
end