你可以用DELPHI的日期、时间函数来完成你要的功能!不过这个时间段的比较不知道这方法是不是能满足你的要求:
select * from table where starttime>'2002-05-00' and endtime<'2002-07-00'

解决方案 »

  1.   

    可能大家有些不太明白
    其实就是比如说要查2002.6-2002.11的缴费用户
     我刚开始是条件语句是这样的
      缴费开始年份<=2002 and 缴费结束月份<=6 AND 缴费结束年份>=2002 and 缴费结束月份>=11
    后来才发现这样是很不对的
    如果是缴费从2002.5-2003.1这样按照我的条件是不对其实这个用户在这段是缴过了
    归结束起来也就是
    缴费开始时段要<=2002.6,缴费结束时段>=2002.11
      

  2.   

    A:  [缴费开始时段] 如:2001.6.23(同时把开始缴费开始时段和结束时段折分若个字段保存到数据库里)
    B:  [缴费结束时段] 如:2002.12.12
    AY: [缴费开始年份] 如2001
    AM: [缴费开始月份] 如:6 
    BY: [缴费结束年份] 如:2002 
    BM: [缴费结束月份] 如:12SELECT * FROM TABLE1 WHERE CONVERT(VARCHAR(7),A)<='2001-06' AND CONVERT(VARCHAR(7),B)>='2002-12'或者
    select * from table1 where year(a)<='2001' and month(a)<=6 and 
    year(b)>='2002' and month(b)>=12或者
    select * from table1 where ay<='2001' and am<=6 and 
    by>='2002' and bm>=12
      

  3.   

    其实你可以先组织好待查询的条件1和条件2;
    Select * from [缴费情况] where [缴费开始时段]>=条件1 and [缴费开始时段]<=条件2不知有何难解的?
      

  4.   

    那就用
      (缴费结束年份<=2002 and 缴费结束月份<=6) or (缴费开始年份>=2002 and 缴费开始月份>=11)
      

  5.   

    select * from table where starttime<'2002-05-00' and endtime>'2002-07-00'
    这句语法是不对的就算是对也不能满足我的要求
    比如我某个人的缴费时段记录是2002.05.12-2002.02.08
    按照你这个去查根本查不到啊!因为2002.05.12>2002.05.00
    我不要精确到天数,只要精确到月份就可以了
      

  6.   

    renzhm(戴尔飞):
    你这种我也考虑过,虽然用SQL写起来方便些
    可是仍然很烦
      

  7.   

    (缴费结束年份<=2002 and 缴费结束月份<=6) or (缴费开始年份>=2002 and 缴费开始月份>=11)这样的话当然不行了
    举个例子:
     某人缴费记录是:2002.6-2002.7这个应该不符合条件的
    按照你的思路这个人也符合条件了
      

  8.   

    望尘兄
    Select * from [缴费情况] where [缴费开始时段]>=条件1 and [缴费开始时段]<=条件2
    你的意思我知道,你这样的话是精确到天数了
    我的意思只精确到月份就可以了
      

  9.   

    依我之见,把时间一换为‘2002-06-01’,时间二换为'2002-12-01'Select * from [缴费情况] where [缴费开始时段]>=时间1 and [缴费开始时段]<时间2就可以了
      

  10.   

    var
      BeginDate,EndDate: TDateTime;
    begin
      BeginDate:= EncodeDate(StartYear,StartMonth,1,0,0,0,0);
      EndDate:= EncodeDate(EndYear,EndMonth,1,0,0,0,0);
      with tablel do
      begin
        Close;
        SQL.Clear;
        SQL.Add('');         //详细内容你自己写
        ParamByName(''):= BeginDate;
        ParamByName(''):= EndDate;  
        PrePare;  
        Open;
      end;
    end;