declare @t table (myyear int,mymonth int,myday int) insert into @t values(2005,1,1) insert into @t values(2003,2,5) insert into @t values(2006,5,5) insert into @t values(2006,1,2)select * from @T where convert(char(10),cast(myyear as varchar)+'-'+cast(mymonth as varchar)+'-'+cast(myday as varchar),120) between '2005-1-1' and '2006-5-5' /* myyear mymonth myday ----------- ----------- ----------- 2005 1 1 2006 5 5 2006 1 2 (所影响的行数为 3 行) */
---例子,不知道是不是楼主要的 declare @year varchar(4),@month varchar(2),@day varchar(2)select 是否在这个区间内=case when cast((@year+'-'+@month+'-'+@day) as datetime) between '2005-1-1' and '2006-5-5' then '是' else '否' end
where convert(char(10),cast(myyear as varchar)+'-'+cast(mymonth as varchar)+'-'+cast(myday as varchar),120) between '2005-1-1' and '2006-5-5' IS OK
declare @table_ table( a varchar(10),b varchar(10),c varchar(10)) insert into @table_ select '2005/10/1','2007/10/4','2007/10/7' insert into @table_ select '2006/10/2','2007/10/5','2007/10/8' insert into @table_ select '2007/10/3','2007/10/6','2007/10/9' SELECT YEAR(a) as year_, MONTH(b)as month_, DAY(c) as day_ from @table_
//修改一下别人的代码declare @year varchar(4),@month varchar(2),@day varchar(2) set @year='2005' set @month='01' set @day='25' select 是否在这个区间内=case when cast((@year+'-'+@month+'-'+@day) as datetime) between '2005-1-1' and '2006-5-5' then '是' else '否' end
declare @t table (myyear int,mymonth int,myday int)
insert into @t values(2005,1,1)
insert into @t values(2003,2,5)
insert into @t values(2006,5,5)
insert into @t values(2006,1,2)select *
from @T
where convert(char(10),cast(myyear as varchar)+'-'+cast(mymonth as varchar)+'-'+cast(myday as varchar),120) between '2005-1-1' and '2006-5-5'
/*
myyear mymonth myday
----------- ----------- -----------
2005 1 1
2006 5 5
2006 1 2 (所影响的行数为 3 行)
*/
declare @year varchar(4),@month varchar(2),@day varchar(2)select 是否在这个区间内=case when cast((@year+'-'+@month+'-'+@day) as datetime) between '2005-1-1' and '2006-5-5' then '是' else '否' end
IS OK
declare @table_ table( a varchar(10),b varchar(10),c varchar(10))
insert into @table_ select '2005/10/1','2007/10/4','2007/10/7'
insert into @table_ select '2006/10/2','2007/10/5','2007/10/8'
insert into @table_ select '2007/10/3','2007/10/6','2007/10/9'
SELECT YEAR(a) as year_, MONTH(b)as month_, DAY(c) as day_ from @table_
set @year='2005'
set @month='01'
set @day='25'
select 是否在这个区间内=case when cast((@year+'-'+@month+'-'+@day) as datetime) between '2005-1-1' and '2006-5-5' then '是' else '否' end