日期:2014-05-18  浏览次数:20548 次

判断时间问题
table1有字段 id time1   time2

要判断time3是否在time1、time2之间,而且time1和time2会有跨天的可能性。

肯请大家帮忙```

------解决方案--------------------
---不知道你具体指什么意思???

Select Case When @time3> time1 And @time3 <time2
Then 'time3在此之间 ' Else 'time3不在此之间 ' End
From table1
------解决方案--------------------
---创建测试
Create Table table1(id int,time1 datetime,time2 Datetime)
Insert table1 Select 1, '2007-8-20 ', '2007-8-22 '
Union All Select 2, '2007-8-25 ', '2007-8-31 '
Select * From table1

--查询
Declare @time3 datetime
Set @time3= '2007-8-28 '
Select id,Case When @time3> time1 And @time3 <time2
Then 'time3在此之间 ' Else 'time3不在此之间 ' End
From table1
/*
id
----------- ---------------
1 time3不在此之间
2 time3在此之间

(所影响的行数为 2 行)
*/
Drop Table table1
------解决方案--------------------
table1有字段 id time1 time2

要判断time3是否在time1、time2之间,而且time1和time2会有跨天的可能性。

肯请大家帮忙```

select * from table1 where convert(varchar(10),time1,120) <= convert(varchar(10),time3,120) and convert(varchar(10),time2,120) > = convert(varchar(10),time3,120)