create table text
(id int,datatime Date)insert into text
values
(5,to_date('2011-1-1','yyyy-MM-dd'))
insert into text
values
(6,to_date('2011-1-2','yyyy-MM-dd'))
insert into text
values
(7,to_date('2011-1-3','yyyy-MM-dd'))
insert into text
values
(8,to_date('2011-1-6','yyyy-MM-dd'))
insert into text
values
(9,to_date('2011-1-8','yyyy-MM-dd'))
.......
insert into text
values
(111,to_date('2011-2-6','yyyy-MM-dd'))insert into text
values
(111,to_date('2011-2-8','yyyy-MM-dd'))
等等如何查询出2011-1-4
2011-1-5
2011-1-7
2011-2-7
小弟真不会了

解决方案 »

  1.   

    指定范围构造全表,然后minus
      

  2.   

    在一定的范围内,在minus就可以的。
      

  3.   

    select to_date('2011-1-1','yyyy-MM-dd')+level-1 from dual connect by level<=to_date('2011-2-8','yyyy-MM-dd')-to_date('2011-1-1','yyyy-MM-dd')+1
    minus 
    select datatime from text;
      

  4.   


    就是从数据录入的第一天起 也就是最早的那天 到sysdate那天 输出没有出现的那些时间的数据
      

  5.   

    select to_date('2011-1-1','yyyy-MM-dd')+level-1 from dual connect by level<=trunc(sysdate)-(select min(datatime) from text)+1
    minus  
    select datatime from text;
      

  6.   

    select (select min(datatime) from text)+level-1 from dual connect by level<=trunc(sysdate)-(select min(datatime) from text)+1
    minus   
    select datatime from text;
    这样就行了 但就是不知道实际用起来速度会不会有问题
      

  7.   

    分数 就给 minitoy 仁兄了 阿里嘎到