Oracle使用函数累计-创新互联

时间/日期处理:Oracle使用函数累计
1.NEXT_DAY(date,char) 获取date时间下个char(星期几)日期。
date:参数为日期型。
char:为1~7或Monday/Mon~Sunday/ 指定时间的下一个星期几(由char指定)所在的日期,har也可用1~7替代,还可以是星期一、星期二~~星期日
select next_day(sysdate,'星期日') from dual;
select next_day(sysdate,'3') from dual; --国外的日期类型,周日为星期一
2. 本周,本月,本年
--本周select trunc(sysdate, 'd') + 1 from dual;--周一select trunc(sysdate, 'd') + 7 from dual;--周日
--本月select trunc(sysdate, 'mm') from dual;--本月第一天select last_day(trunc(sysdate)) from dual;--本月最后一天
--本季select trunc(sysdate, 'Q') from dual;--本季第一天select add_months(trunc(sysdate, 'Q'), 3) - 1 from dual;--本季最后一天
--本年select trunc(sysdate, 'yyyy') from dual;--本年第一天select add_months(trunc(sysdate, 'yyyy'), 12) - 1 from dual;--本年最后一天
实例(自定义一周开始结束):数据的统计时间为 :“上周的周六” 开始到 “本周的周五” 结束。
select case to_char(sysdate, 'D') --得到当天在本周的星期几 when '7' then --如果是周六          sysdate --返回当天 else
          sysdate- (to_char(sysdate, 'D')) --否则,返回上周六(此处公式为当日减去自身的周几+1)  end 开始时间,
case to_char(sysdate, 'D') --得到当天在本周的星期几 when '7' then --如果是周六          next_day(sysdate, 6) --结束时间返回下周五 else
          trunc(sysdate,'D') + 5 --trunc(sysdate, 'D')得到本周一,+5则是获取周五  end 结束时间
from dual

文章标题:Oracle使用函数累计-创新互联
网站URL:http://myzitong.com/article/cosjjh.html