--国内从周一到周日 国外是周日到周六
select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期
--取本周时间内的数据
select * from table where DTIME >=trunc(next_day(sysdate-,)+) and DTIME<=trunc(next_day(sysdate-,)+)+ ; select * from table where DTIME >=trunc(next_day(sysdate-,)) and DTIME<=trunc(next_day(sysdate-,)+);--国外的 select * from table where DTIME >=TRUNC(SYSDATE, 'MM') and DTIME<=last_day(SYSDATE);
--本月的
select * from table where to_char(DTIEM,'yyyy')=to_char(sysdate,'yyyy');
--本年的
-- 这样取的是 在一周内第几天,是以周日为开始的
select to_char(to_date('','yyyymmdd'),'d') from dual;
--结果: 注释:2013.09.06是周五,为本周的第六天 select to_char(sysdate+(-to_char(sysdate,'d'))-,'yyyymmdd') from dual;---上周一
select to_char(sysdate+(-to_char(sysdate,'d'))-,'yyyymmdd') from dual;---上周日 -- 一个更简单的写法 , 返回date类型
select trunc(sysdate,'iw') - from dual;---上周一
select trunc(sysdate,'iw') - from dual;--上周日
-- 取上个月最后一天
SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -)),'YYYYMMDD') FROM DUAL; -- 取上个月第一天
SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -)) + ,'YYYYMMDD') FROM DUAL;