Anyone know why the following is returning 8? I'm expecting 8 hours 30 minutes, or 8.5?
declare @start_day datetime;
declare @end_day datetime;
declare @start_time datetime;
declare @end_time datetime;
set @start_day = '2014-06-18';
set @end_day = '2014-06-18';
set @start_time = '09:00';
set @end_time = '17:30';
print datediff(hour,@start_day + @start_time, @end_day + @end_time);
Try this, CAST your DATEDIFF of the minutes to float then divide by 60 to get the hours.
declare @start_day datetime;
declare @end_day datetime;
declare @start_time datetime;
declare @end_time datetime;
set dateformat ymd
set @start_day = '2014-06-18';
set @end_day = '2014-06-18';
set @start_time = '09:00';
set @end_time = '17:30';
print cast(datediff(minute,@start_day + @start_time, @end_day + @end_time) as float) / 60;
Try this :
print cast(datediff(mi,@start_day + @start_time, @end_day + @end_time)
as decimal(10,2))/60;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With