datediff(mm , getdate(), dt) = 2 and datepart(day , dt) in (11,12)
下兩個月的10\11號 Date between convert(varchar(8),Dateadd(m,1,Date),120)+'10 00:00:00' and convert(varchar(8),Dateadd(m,1,Date),120)+'11 23:59:59' or Date between convert(varchar(8),Dateadd(m,2,Date),120)+'10 00:00:00' and convert(varchar(8),Dateadd(m,2,Date),120)+'11 23:59:59'
如何判断日期是否在未来两个月,并且在11号至10号....SQL语句怎样写??? -->>每个月的10日到11日?select * from tb where iday between convert(datetime,convert(char(8),dateadd(month,1,getdate()),120)+'10',120) and between convert(datetime,convert(char(8),dateadd(month,1,getdate()),120)+'11',120) or iday between convert(datetime,convert(char(8),dateadd(month,2,getdate()),120)+'10',120) and between convert(datetime,convert(char(8),dateadd(month,2,getdate()),120)+'11',120)
declare @dt datetime set @dt='2009-01-13' if convert(varchar(10),@dt,120) between convert(varchar(7),dateadd(mm,1,getdate()),120)+'11' and convert(varchar(7),dateadd(mm,2,getdate()),120)+'-10' print 'Exists' else print 'Not exists'. /*Exists */
select * from tb where (datediff(m, getdate(), date)=0 and day(date)>=11 and datediff(d, getdate(), date)<=0) or (datediff(m, getdate(), date)=1) or (datediff(m, getdate(), date)=2 and day(date)<=10 and day(date)<=day(getdate()))
select * from tb where date between dateadd(m, datediff(m,0,getdate())+1,0)+9 and dateadd(m, datediff(m,0,getdate())+2,0)+10
边界问题 select * from tb where date>=dateadd(m,datediff(m,0,getdate())+1,0)+9 and date<dateadd(m,datediff(m,0,getdate())+2,0)+11
or
Date between convert(varchar(8),Dateadd(m,2,Date),120)+'10 00:00:00' and convert(varchar(8),Dateadd(m,2,Date),120)+'11 23:59:59'
where iday between convert(datetime,convert(char(8),dateadd(month,1,getdate()),120)+'10',120) and between convert(datetime,convert(char(8),dateadd(month,1,getdate()),120)+'11',120)
or iday between convert(datetime,convert(char(8),dateadd(month,2,getdate()),120)+'10',120) and between convert(datetime,convert(char(8),dateadd(month,2,getdate()),120)+'11',120)
set @dt='2009-01-13'
if convert(varchar(10),@dt,120) between convert(varchar(7),dateadd(mm,1,getdate()),120)+'11' and convert(varchar(7),dateadd(mm,2,getdate()),120)+'-10'
print 'Exists'
else
print 'Not exists'.
/*Exists
*/
where (datediff(m, getdate(), date)=0 and day(date)>=11 and datediff(d, getdate(), date)<=0) or (datediff(m, getdate(), date)=1)
or (datediff(m, getdate(), date)=2 and day(date)<=10 and day(date)<=day(getdate()))
select * from tb
where date between dateadd(m, datediff(m,0,getdate())+1,0)+9
and dateadd(m, datediff(m,0,getdate())+2,0)+10
select * from tb
where date>=dateadd(m,datediff(m,0,getdate())+1,0)+9
and date<dateadd(m,datediff(m,0,getdate())+2,0)+11