日期:2014-05-18 浏览次数:20722 次
--怎么拆分时间段?
create table #tb(a datetime,b datetime)
insert into #tb values('2011-01-15 10:15:00','2011-01-17 09:25:00')
/*
--拆成
'2011-01-15 10:15:00' '2011-01-15 23:59:59'
'2011-01-16 00:00:00' '2011-01-16 23:59:59'
'2011-01-17 00:00:00' '2011-01-17 09:25:00'
*/
create table #tb(a datetime,b datetime)
insert into #tb values('2011-01-15 10:15:00','2011-01-17 09:25:00')
SELECT
CASE WHEN a.number=0 THEN b.a+a.number ELSE CONVERT(VARCHAR(10),b.a+a.number,120) END AS StartDate,
CASE WHEN DATEDIFF(dd,b.a+a.number,b)=0 THEN b.b ELSE CONVERT(VARCHAR(10),b.a+a.number,120)+' 23:59:59' END AS EndDate
FROM master.dbo.spt_values AS a ,#tb AS b
WHERE
DATEDIFF(dd,b.a+a.number,b)>=0
and a.type='P' AND a.number>=0
/*
2011-01-15 10:15:00.000 2011-01-15 23:59:59.000
2011-01-16 00:00:00.000 2011-01-16 23:59:59.000
2011-01-17 00:00:00.000 2011-01-17 09:25:00.000
*/