字段是t1,t2
记录是
2008-11-01 06:59:00 2008-11-01 07:59:00
2008-11-01 08:59:00 2008-11-01 09:06:00
2008-11-01 10:59:00 2008-11-01 11:01:00 2008-11-02 05:59:00 2008-11-02 08:59:00
2008-11-02 10:59:00 2008-11-02 01:06:00
2008-11-02 11:59:00 2008-11-02 12:01:00
现在想找出每天t1最早的是,t2最晚的是
记录是
2008-11-01 06:59:00 2008-11-01 07:59:00
2008-11-01 08:59:00 2008-11-01 09:06:00
2008-11-01 10:59:00 2008-11-01 11:01:00 2008-11-02 05:59:00 2008-11-02 08:59:00
2008-11-02 10:59:00 2008-11-02 01:06:00
2008-11-02 11:59:00 2008-11-02 12:01:00
现在想找出每天t1最早的是,t2最晚的是
create table tb(t1 datetime , t2 datetime)
insert into tb values('2008-11-01 06:59:00' ,'2008-11-01 07:59:00')
insert into tb values('2008-11-01 08:59:00' ,'2008-11-01 09:06:00')
insert into tb values('2008-11-01 10:59:00' ,'2008-11-01 11:01:00')
insert into tb values('2008-11-02 05:59:00' ,'2008-11-02 08:59:00')
insert into tb values('2008-11-02 10:59:00' ,'2008-11-02 01:06:00')
insert into tb values('2008-11-02 11:59:00' ,'2008-11-02 12:01:00')
goselect isnull(m.t1 , n.t2) [day] , m.t1_min , n.t2_max from
(select convert(varchar(10),t1,120) t1, min(t1) t1_min from tb group by convert(varchar(10),t1,120)) m
full join
(select convert(varchar(10),t2,120) t2, max(t2) t2_max from tb group by convert(varchar(10),t2,120)) n
on m.t1 = n.t2drop table tb/*
day t1_min t2_max
---------- ------------------------------------------------------ ------------------------------------------------------
2008-11-01 2008-11-01 06:59:00.000 2008-11-01 11:01:00.000
2008-11-02 2008-11-02 05:59:00.000 2008-11-02 12:01:00.000(所影响的行数为 2 行)*/
go
create table tb(t1 datetime , t2 datetime)
insert into tb values('2008-11-01 06:59:00' ,'2008-11-01 07:59:00')
insert into tb values('2008-11-01 08:59:00' ,'2008-11-01 09:06:00')
insert into tb values('2008-11-01 10:59:00' ,'2008-11-01 11:01:00')
insert into tb values('2008-11-02 05:59:00' ,'2008-11-02 08:59:00')
insert into tb values('2008-11-02 10:59:00' ,'2008-11-02 01:06:00')
insert into tb values('2008-11-02 11:59:00' ,'2008-11-02 12:01:00')
go
select min(t1),max(t2) from tb group by convert(varchar(10),t1,120),convert(varchar(10),t2,120)
/*(影響 1 個資料列)
------------------------------------------------------ ------------------------------------------------------
2008-11-01 06:59:00.000 2008-11-01 11:01:00.000
2008-11-02 05:59:00.000 2008-11-02 12:01:00.000(影響 2 個資料列)
*/
select min(t1),max(t2) from @t group by convert(nvarchar(10),t1,112)