一个sql日期段查询问题
数据库里有两个字段为日期:    
 客户      开始日期            结束日期         消费 
 205         2007-6-1            2007-6-15         50 
 205         2007-6-16         2007-6-20         20 
 205         2007-6-21         2007-6-25         10 
 现在需要查询日期段为2007-6-5至2007-6-19的纪录,得到前两条的纪录,句子应该怎么写呢?
------解决方案--------------------select * from tablename 
 where 结束日期> = '2007-6-5 ' 
 and 开始日期 <= '2007-6-19 ' 
------解决方案--------------------declare @stardate varchar(10),@enddate varchar(10) 
 select * from  
 ( 
 select top 1 * from table where  开始日期  <= @stardate order by 开始日期 desc  
 union all 
 select top 1 * from table where  开始日期  <= @enddate order by 开始日期 desc 
 union all 
 select * from table table where 开始日期 between @stardate and @enddate   
 )A 
 order by A.開始時間
------解决方案--------------------  create table #r  (客户 int,  开始日期 datetime,   结束日期 datetime ) 
 insert into #r 
 select 205 ,   '2007-6-1 ' ,    '2007-6-15 ' union all 
 select 205 ,   '2007-6-16 ',    '2007-6-20 '  union all 
 select 205 ,   '2007-6-21 ' ,   '2007-6-25 '     
 select * from #r where 开始日期  between  '2007-6-5 '  and   '2007-6-19 '  or 结束日期 between  '2007-6-5 '  and   '2007-6-19 '