首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

100分,一个比较难的时间段的判断有关问题

2012-02-01 
100分求助,一个比较难的时间段的判断问题有一个表如下:SCodeStartDateEndDate0020442008-04-012008-04-300

100分求助,一个比较难的时间段的判断问题
有一个表如下:
SCode StartDate EndDate
0020442008-04-012008-04-30
0020442008-06-012008-06-15
0020442008-08-012008-08-15
如果给出一个两个时间如:s1=2008-06-16,s2=2008-06-30,或者是s1=2008-04-1,s2=2008-04-15,时间段也可能在2008-04-01之前,或2008-08-15之后,如何判断这个时间段是否已在数据库中?(数据库的最小时间段是半个月,以15号为分界判断之).
哪个高手能帮一下忙,或提供一个思路?先谢过了! 


[解决办法]
需要使用临时表来实现.
[解决办法]
select scode,sum(to_number(END_DATE)-to_number(START_DATE)) a into as_code,as_number from tablename where scode='xxx' and start_date>=as_start_date and end_date<=as_end_date
if as_number==(to_number(as_end_date)-to_number(as_start_date))
[解决办法]
declare @d1 datetime,@d2 datetime
set @d1 = ..
set @d2 = ..
if exists(select 1 from ta where datediff(d,@d1,StartDate)= 0 and datediff(d,@d2,EndDate ) = 0 )
print 'yes'
else 
print 'No'

热点排行