Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8594

Re: 1 record with 2 dates, need to split at midnight

$
0
0

I think the real challenge here is getting two rows out of one.

 

SELECT x.*, DATEDIFF(HOUR, x.StartDateTime, x.EndDateTime)

FROM (

-- if StartDateTime and EndDateTime are on different days generate two rows

 

SELECT ID, StartDateTime,

CONVERT(DATETIME, CONVERT(VARCHAR(10), CONVERT(DATE, StartDateTime)) + ' 23:59:59') AS EndDateTime

FROM #DateTimeSplit

WHERE DATEDIFF(DAY, StartDateTime, EndDateTime) <> 0

 

UNION

 

SELECT ID,

CONVERT(DATETIME, CONVERT(VARCHAR(10), CONVERT(DATE, EndDateTime)) + ' 00:00:00') AS StartDateTime,

EndDateTime

FROM #DateTimeSplit

WHERE DATEDIFF(DAY, StartDateTime, EndDateTime) <> 0

 

UNION

 

-- if StartDateTime and EndDateTime are on the same day just get the one row

SELECT ID, StartDateTime, EndDateTime

FROM #DateTimeSplit

WHERE DATEDIFF(DAY, StartDateTime, EndDateTime) = 0) x

This won't work if you time span goes across 3 days.

 

Noel


Viewing all articles
Browse latest Browse all 8594

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>