有一日期如2007-8-10
有几个时间段如
一 2007-10-15至2007-11-20
二 2007-4-1至2007-5-25
三 2007-6-1至2007-6-30
四 2008-01-05至2008-5-4
如何确定日期2007-8-10属于一、二、三、四中那个呀,谢谢
其中一、二、三、四的时间段存于数据库中,每一个对应两个字段如一 分别为bdate至adate
依次.........

解决方案 »

  1.   

    select * from #t where '2007-10-17' between bdate and adate
      

  2.   

    --创建环境
    drop table #t
    create table #t(timeID varchar(2),bdate datetime,adate datetime)
    insert into #t select '一','2007-10-15','2007-11-20'
             union select '二','2007-4-1','2007-5-25'
             union select '三','2007-6-1','2007-6-30'
             union select '四','2008-01-05','2008-5-4'--SQL语句
    select * from #t where '2007-10-17' between bdate and adate--查询结果
    timeID bdate                                                  adate                                                  
    ------ ------------------------ --------------------- 
    一      2007-10-15 00:00:00.000   2007-11-20 00:00:00.000--(所影响的行数为 1 行)
      

  3.   

    谢谢了
    我的是这样的,我列完字段吧
    2007-8-10 是程序中一个变量一 2007-10-15至2007-11-20 
    二 2007-4-1至2007-5-25 
    三 2007-6-1至2007-6-30 
    四 2008-01-05至2008-5-4 五 2008-01-05至2008-5-4 对应字段
    rs("kbdate
    rs("kadate 
    rs("ybdate
    rs("yadate
    rs("pbdate
    rs("padate
    rs("ysbdate
    rs("ysadate
    rs("bbdate
    rs("badate
      

  4.   

    各位帮帮忙'2007-10-17' between bdate and adate
    这句在ACCESS中行不通的,认为bdatet 和 adate是一变量
      

  5.   

    '2007-10-17 ' between bdate and adate 
    这句在ACCESS中行不通的,认为bdatet 和 adate是一变量
    错误的原因不在于你所说的,而是
    '2007-10-17'是t-sql中的写法.
    jetsql中试一下 #2007-10-17# between bdate and addate
      

  6.   

    select * from #t where #2007-10-17# between bdate and adate
      

  7.   

    你们都理解错了,并不只是两个字段
    他们分别对应一个字段,意思
    日期段共有10个字段自己搞定了,用SQL没办法,用程序来还有select * from #t where #2007-10-17# between bdate and adate
    ACCESS中运行出一对话框,要求输入bdate,adate值