I have a table called Timezone and the data looks like:
Call_ID Start_Time
93856 2011-08-04 09:59:47.000
58796 2011-08-05 14:54:37.000
25489 2011-08-09 15:32:13.000
I want the output as :
Call_ID Start_Time Interval
93856 2011-08-04 09:59:47.000 0930
58796 2011-08-05 14:54:37.000 1430
25489 2011-08-09 15:32:13.000 1530
I did something like this:
Select Call_ID , Start_Time,
CASE WHEN DATEPART(minute,Start_Time)>30 THEN
RIGHT('0' + CAST(DATEPART(HOUR,Start_Time) AS VARCHAR),2) + '30'
ELSE
RIGHT('0' + CAST(DATEPART(HOUR,Start_Time) AS VARCHAR),2) + '00'
END
From Timezone
Group By Call_ID , Start_Time,
CASE WHEN DATEPART(minute,Start_Time)>30 THEN
RIGHT('0' + CAST(DATEPART(HOUR,Start_Time) AS VARCHAR),2) + '30'
ELSE
RIGHT('0' + CAST(DATEPART(HOUR,Start_Time) AS VARCHAR),2) + '00'
END
Is there a better way of doing it?
1 Answer