日期:2014-05-16  浏览次数:20754 次

sql查语句询一周以前的记录
用oracle怎么样来查询以当前时间为准,一周以前的记录,急用,希望大侠们帮忙!
------解决方案--------------------

--此处按周一到周日为一周计算
select * from 你的表 where to_char(时间列,'yyyy-mm-dd') < to_char(next_day(sysdate-7, '星期一')-1,'yyyy-mm-dd');

------解决方案--------------------
请问这个时间列对应什么,我不知道,本人鱼笨
------解决方案--------------------
是不是数据库的字段名
------解决方案--------------------
你表中用来查询的时间字段的名称
------解决方案--------------------
如果你的数据库是英文的就应把星期一改为MON,不过一般的都是中文的

--执行这个看下你数据库的日期格式,应是中文的
select to_char(sysdate,'day') from dual;

------解决方案--------------------
select * from orders where  to_char(createdate,'yyyy-MM-DD')<to_char(next_day(sysdate-7,'星期一')-1,'yyyy-MM-DD');

刚才试了下,说是无效字符,ORA-00911无效字符错误
------解决方案--------------------

SQL> create table orders(
  2  id int,
  3  createdate date
  4  );

表已创建。

SQL> insert into orders values(1,sysdate-7);

已创建 1 行。

SQL> insert into orders values(1,sysdate-6);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from orders where to_char(createdate,'yyyy-MM-DD')<to_char(next_day(sysdate-7,'星期一')-1,'yyyy-MM-DD');

        ID CREATEDATE                                                           
---------- --------------                                                       
         1 06-8月 -12                                                           
         1 07-8月 -12    

------解决方案--------------------
谢谢你,但还是不行,我无语了,我自己在弄弄吧
------解决方案--------------------
没事,那就不太清楚了,我插入一条日期为null的也没有报错

------解决方案--------------------
SELECT trunc(SYSDATE,'Dy')-7 FROM dual; --求得本周一的日期再减七天
SELECT sysdate-7 FROM dual;直接就是七天前的数据。。。
哪个是你要的?