求一个SQL语句查昨天5点时 tbl_a 表中的数据。

解决方案 »

  1.   

    SELECT to_date(to_char(trunc(SYSDATE,'dd')-1,'yyyy-mm-dd')||' 17:00:00','yyyy-mm-dd hh24:mi:ss') last_day FROM dual--result:
    2011-11-27 17:00:00
      

  2.   

    实测成功:CREATE TABLE T24
    (
        MyTime DATE
    );INSERT INTO T24 VALUES(to_date('2011-11-27 04:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO T24 VALUES(to_date('2011-11-27 05:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO T24 VALUES(to_date('2011-11-27 17:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO T24 VALUES(to_date('2011-11-27 17:20:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO T24 VALUES(to_date('2011-11-28 04:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO T24 VALUES(to_date('2011-11-28 05:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO T24 VALUES(to_date('2011-11-28 17:00:00', 'YYYY-MM-DD HH24:MI:SS'));SELECT MyTime FROM T24
    WHERE MyTime = TRUNC(SYSDATE, 'DD') + 5/24;
    结果只有一条满足条件。
      

  3.   

    条件错了一小点,注意更正:WHERE MyTime = TRUNC(SYSDATE, 'DD') -1 + 5/24;
      

  4.   

    tbl_a里面有字段存储时间么?
    还有一个问题,就是查询昨天5点时候的数据的话,很有可能被更新过了,不可能回到那个时间点,除非你在那个时间点作了备份,或者日志归档开启的话,可以使用LogMiner察看日志从昨天5点到现在数据库有哪些变化,从而还原数据。
    LogMiner使用:http://topic.csdn.net/t/20040726/17/3211855.html
      

  5.   

    10G 用flashback9i,你只能看一下你有没有那个时间点的备份
      

  6.   

    select * from TAB
     as of timestamp TRUNC(SYSDATE, 'DD') -1 + 17/24