1、获取当前时间一周前的日期
select sysdate - interval '7' day from dual
类似的
1 --当前时间减去7分钟的时间 2 select sysdate,sysdate - interval '7' MINUTE from dual 3 --当前时间减去7小时的时间 4 select sysdate - interval '7' hour from dual 5 --当前时间减去7天的时间 6 select sysdate - interval '7' day from dual 7 --当前时间减去7月的时间 8 select sysdate,sysdate - interval '7' month from dual 9 --当前时间减去7年的时间 10 select sysdate,sysdate - interval '7' year from dual 11 --时间间隔乘以一个数字 12 select sysdate,sysdate - 8 *interval '2' hour from dual
2、获取当前时间一个月前的日期
select add_monthssysdate,-1) from dual
3、获取当前时间一年前的日期
select add_monthssysdate,-12) from dual
4.获取本周
select * from 表 where time > sysdate - to_charsysdate-1,'D'));
5.获取本月
select * from 表 where time>=TRUNCSYSDATE, 'MM') and time<=last_daySYSDATE);
6. 获取当年时间的数据
1 Select * From 表 Where To_CharTime,'yyyy')=To_CharSysdate,'yyyy'); 2 或者 3 Select * From 表 Where Time >= truncSysdate,'yyyy');
例子:
1 --当前时间的最近一个月 2 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >= Add_MonthsSysdate,-1); 3 --当前时间的一个月前 4 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date < Add_MonthsSysdate,-1); 5 --获取当前时间一年前的日期 6 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date < Add_MonthsSysdate,-12); 7 --获取当前时间近一周 8 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >Sysdate - Interval '7' Day; 9 --本周 10 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >Sysdate - To_CharSysdate-1,'D')) Order By Create_Date Asc; 11 --本月 12 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where create_date >=TRUNCSYSDATE, 'MM') and Create_Date <=last_daySYSDATE) Order By Create_Date Asc; 13 --当年 14 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where To_CharCreate_Date,'yyyy') = To_CharSysdate,'yyyy'); 15 --当年 16 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >= truncSysdate,'yyyy');
说明:
1. 当前时间减去7月的时间 sysdate - interval '7' month 的实现方式 和 当前时间的7月 Add_MonthsSysdate,-7) 实现结果是一样的
1 --当前时间的近7月的时间数据 2 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >Sysdate - Interval '7' Month) order by Create_Date asc ; 3 --当前时间的近7月的时间数据 4 Select To_CharCreate_Date,'yyyy-MM-dd HH:mm:ss') From Order Where Create_Date >= Add_MonthsSysdate,-7) order by Create_Date asc;
2. 外国都是以周日作为每周的第一天,所以在调用Sysdate – To_CharSysdate-1,’D’) 计算本周时,要大于这个时间,不能是包括
select sysdate 当前时间 , sysdate - interval '7' day 当前时间近一周 ,Sysdate - To_CharSysdate-1,'D') 本周 from dual;
运行结果为: