zrong 发表于 2018-9-22 11:35:24

oracle获取时间段

  获取本周、上周、去年同期周时间段、当前月、上个月、去年同期月份时间段、当前季度、上个季度、去年同期季度时间段、今年、去年同期年份时间段
  用途:统计图
  纠结原因:获取的都是时间段,可恶时间段(=@__@=)
  如当前月:2011.12.01 00:00 ~ 2011.12.07 22:33
  上个月:2011.11.01 00:00 ~ 2011.11.07 22:33
  去年同期月份时间段:2010.12.01 00:00 ~ 2011.12.07 22:33
  加班搞了个这.
  --本周
  select(TRUNC(SYSDATE-1,'d')+1) , sysdate from dual;
  --上周
  select (TRUNC(SYSDATE-1,'d')-6) , (SYSDATE-7) from dual;
  --去年同期周时间段
  select (trunc(add_months(trunc(sysdate),-12)-1,'d')+1) ,add_months(sysdate,-12) from dual;
  --当前月
  select trunc(sysdate,'mm'),sysdate from dual;
  --上个月
  selecttrunc(add_months(sysdate,-1),'mm') , (sysdate-to_number(to_char(last_day(add_months(sysdate,-1)),'dd')))from dual;
  --去年同期月份时间段
  select add_months(trunc(sysdate,'mm'),-12),add_months(sysdate,-12) from dual;
  --当前季度
  select trunc(sysdate,'Q'),sysdate from dual;
  --上个季度
  select add_months(trunc(sysdate,'Q'),-3) , add_months(sysdate,(to_number(to_char(trunc(sysdate,'Q'),'mm'))-to_number(to_char(sysdate,'mm'))-1) )from dual;
  --去年同期季度时间段
  select add_months(trunc(sysdate,'Q'),-12),add_months(sysdate,-12) from dual;
  --今年
  select trunc(sysdate,'yyyy'),sysdate from dual;
  --去年同期年份时间段
  select add_months(trunc(sysdate,'yyyy'),-12),add_months(sysdate,-12) from dual;

页: [1]
查看完整版本: oracle获取时间段