PK_ID    STARTRQ     ENDRQ C     ONTENT  
101      2007-5-1    2007-5-20    阶段一
102      2007-6-1    2007-10-25   阶段二 
103     2007-7-17    2007-8-1     阶段三 
104     2007-8-27    2007-10-19   阶段四  
查询2007-5-1到2007-8-1 时间内的ONTENT 内容

解决方案 »

  1.   

    难道是这个?STARTRQ >= '2007-5-1' AND ENDRQ <='2007-8-1'
      

  2.   

    我这样写的,它说TO_CHAR('2007-5-1','YYYY-MM-DD')是无效数字,怎么改???
    SELECT CONTENT 
    FROM T1
    WHERE TO_CHAR(T1.STARTRQ,'YYYY-MM-DD')>=TO_CHAR('2007-5-1','YYYY-MM-DD')
    AND TO_CHAR(T1.STARTRQ,'YYYY-MM-DD')<=TO_CHAR('2007-8-1','YYYY-MM-DD')
      

  3.   

    to_date,如果你的startrq是字符型SELECT CONTENT  
    FROM T1 
    WHERE TO_DATE(T1.STARTRQ, 'YYYY-MM-DD ') >=TO_DATE( '2007-5-1 ', 'YYYY-MM-DD ') 
    AND TO_DATE(T1.STARTRQ, 'YYYY-MM-DD ') <=TO_DATE( '2007-8-1 ', 'YYYY-MM-DD ')如果startrq是日期型
    SELECT CONTENT  
    FROM T1 
    WHERE T1.STARTRQ >=TO_DATE( '2007-05-01 ', 'YYYY-MM-DD ') 
    AND T1.STARTRQ <=TO_DATE( '2007-08-01 ', 'YYYY-MM-DD ')
      

  4.   

    我的是DATE型的
    修改后
    SELECT CONTENT 
    FROM T1
    WHERE T1.STARTRQ<=TO_CHAR('2007-5-1','YYYY-MM-DD')
    AND T1.ENDRQ>=TO_CHAR('2007-8-1','YYYY-MM-DD')报错:无效数字
      

  5.   

    SELECT CONTENT 
    FROM T1
    WHERE TO_CHAR(t1.startrq,'YYYY-MM-DD')<=TO_CHAR('2007-5-1','YYYY-MM-DD')
    AND TO_CHAR(t1.endrq,'YYYY-MM-DD')>=TO_CHAR('2007-8-1','YYYY-MM-DD')这样也不行
      

  6.   

    SELECT CONTENT  
    FROM T1 
    WHERE to_date(t1.startrq) <=to_date('2007-5-1 ', 'YYYY-MM-DD ') 
    AND to_date(t1.endrq) >= to_date('2007-8-1', 'YYYY-MM-DD ') 
      

  7.   

    7楼的,语法没错,但是查出来没东西,我表里实际是有记录的
    SELECT CONTENT   
    FROM T1  
    WHERE to_date(t1.startrq)  <=to_date( '2007-5-1  ',  'YYYY-MM-DD  ')  
    AND to_date(t1.endrq) >= to_date( '2007-8-1 ',  'YYYY-MM-DD  ') 
      

  8.   

    TO_CHAR( '2007-5-1 ', 'YYYY-MM-DD ') 已经是字符了,还TO_CHAR呀。赫赫。
      

  9.   

    你把你的表结构贴出来吧。SELECT CONTENT   
    FROM T1  
    WHERE to_date(t1.startrq)   <=to_date(  '2007-5-1   ',   'YYYY-MM-DD   ')  
    AND to_date(t1.endrq)  >= to_date(  '2007-8-1  ',   'YYYY-MM-DD   ') 你怎么很喜欢,对Date的类型to_date,对char类型的TO_CHAR呀。去掉,前面的to_date。而且你的条件写错了。你的条件变成了开始日期,小于2007-5-1,结束时间,大于2007-8-1,这个是你的要求吗?
      

  10.   

    create table T1
    (
      PK_ID   NUMBER(8) not null,
      STARTRQ DATE,
      ENDRQ   DATE,
      CONTENT VARCHAR2(100)
    )----
    T1
    PK_ID    STARTRQ     ENDRQ C     ONTENT   
    101      2007-5-1    2007-5-20    阶段一 
    102      2007-6-1    2007-10-25   阶段二  
    103     2007-7-17    2007-8-1     阶段三  
    104     2007-8-27    2007-10-19   阶段四   

    --要求是随便给个时间段,把里面的所有记录查出来
      

  11.   

    从贴下我表结构和内容
    create table T1 

      PK_ID   NUMBER(8) not null, 
      STARTRQ DATE, 
      ENDRQ   DATE, 
      CONTENT VARCHAR2(100) 
    ) ---- 
    T1 
    PK_ID    STARTRQ     ENDRQ C     ONTENT    
    101      2007-5-1    2007-5-20    阶段一  
    102      2007-6-1    2007-6-25    阶段二   
    103      2007-7-17   2007-8-1     阶段三   
    104      2007-8-27   2007-9-19    阶段四    
      

  12.   

    SELECT CONTENT   
    FROM T1  
    WHERE startrq   <= to_date(  '2007-10-11',   'YYYY-MM-DD')  
    AND endrq  >= to_date(  '2007-10-17',   'YYYY-MM-DD') 这样取不出来吗?
      

  13.   

    我查询条件为2007-10-11 至 2007-10-17日
    SELECT CONTENT    
    FROM T1   
    WHERE startrq    >= to_date(   '2007-10-11 ',    'YYYY-MM-DD ')   
    AND endrq   <= to_date(   '2007-10-17 ',    'YYYY-MM-DD ') 这样 
      

  14.   

    用between  and 不就行了吗?,格式本身就是date的吧
      

  15.   

    楼主啊 写程序吧 先用开始日期和数据库里面的开始做比较 如果你选择的日期大的话 就和数据库里面的截至日期做比较 如果小的话 就把后面的值取出来  然后再比较你所给定的截止日期  否则的话 就NEXT .... 比较一个就记录一个....o(∩_∩)o...哈哈 
      

  16.   

    TO iloveinru:
    between  and 并不适合它。因为,他要求两个日期的范围,包括一个他制定的范围。To genispan:
    他这样的简单需求,还不需要用程序来做。To ehsgs:
    你是不是正好做反了?
      

  17.   

    SELECT ONTENT  FROM T1 WHERE T1.STARTRQ >= TO_DATE('2007-5-1','YYYY-MM-DD') AND T1.ENDRQ <= TO_DATE('2007-8-1','YYYY-MM-DD')   
      

  18.   

    SELECT ONTENT  FROM T1 WHERE to_char(STARTRQ,'yyyymmdd') BETWEEN '20070501' AND '20070801'