比如表如下:
Date1 Date2
2010-03-12 2010-05-30
2009-10-10 2009-12-05
我想得到的结果
Date
2010-03
2010-04
2009-10
2009-11
也就是对比Date2与Date1相差的月份,把相差的结果按月份一条一条的查询出来。
SQL code:
select convert(varchar(7),dateadd(day,number,Date1),120)
from [Table] A,master..spt_values B
where B.number<13 and B.type='p' and dateadd(day,number,Date1)<cast(date2 as datetime)
SQL code:
create table tb(Date1 datetime,Date2 datetime)
insert into tb values('2010-03-12' ,'2010-05-30')
insert into tb values('2009-10-10' ,'2009-12-05')
go
select n.* , convert(varchar(7),dateadd(mm,m.px,Date1),120) dt
from tb n,(select px = (select count(1) from sysobjects where id < t.id) from sysobjects t) m
where convert(varchar(7),dateadd(mm,m.px,Date1),120) < convert(varchar(7),Date2,120)
order by n.date1
drop table tb
/*
Date1 Date2 dt
------------------------------------------------------ ------------------------------------------------------ -------
2009-10-10 00:00:00.000 2009-12-05 0
id url rank ......