select * from 日期表 where convert(varchar(10),'2009-02-05 18:20:18',120) between 開始日期 and 結束日期 select * from 時間表 where convert(varchar(10),'2009-02-05 18:20:18',108) between 開始時間 and 結束時間
declare @dt datetime set @dt='2009-02-05 18:20:18'if exists(select 1 from 日期表 where 开始日期<=@dt and 结束日期>@dt) and exists(select 1 from 时间表 where 开始时间<=convert(varchar(8),@dt,108) and 结束时间>=convert(varchar(8),@dt,108)) print '范围内' else print '范围外'
SELECT NEW_ID=IDENTITY(INT,1,1),* INTO #TB1 FROM 日期表 SELECT NEW_ID=IDENTITY(INT,1,1),* INTO #TB2 FROM 时间表 SELECT T.ID,CONVERT(DATETIME,(T.开始日期+T1.开始时间)) AS TIMESTART,CONVERT(DATETIME,( T.结束日期 + T1.结束时间 ) ) AS TIMEEND FROM #TB1 T,#TB2 T1 WHERE T.NEW_ID=T1.NEW_ID AND T.ID=T1.ID将上面当成一个新表,再输入时间在那个范围之内就好了!!
set @dt='2009-02-05 18:20:18'if exists(select 1 from 日期表 where 开始日期<=@dt and 结束日期>@dt)
and exists(select 1 from 时间表 where 开始时间<=convert(varchar(8),@dt,108) and 结束时间>=convert(varchar(8),@dt,108))
print '范围内'
else
print '范围外'
01 2009-01-01 2009-01-05
01 2009-02-02 2009-02-09
01 2009-05-10 2009-05-15
02 2009-06-01 2009-06-102、时间表 ID 开始时间 结束时间
01 08:00:00 10:00:00
01 12:00:00 15:00:00
01 18:00:00 20:00:00
02 10:20:00 18:10:10
SELECT NEW_ID=IDENTITY(INT,1,1),* INTO #TB1 FROM 日期表
SELECT NEW_ID=IDENTITY(INT,1,1),* INTO #TB2 FROM 时间表
SELECT T.ID,CONVERT(DATETIME,(T.开始日期+T1.开始时间)) AS TIMESTART,CONVERT(DATETIME,( T.结束日期 + T1.结束时间 ) ) AS TIMEEND FROM #TB1 T,#TB2 T1 WHERE T.NEW_ID=T1.NEW_ID AND T.ID=T1.ID将上面当成一个新表,再输入时间在那个范围之内就好了!!