язык SQL .. Как рассчитать DATEDIFF час с минутами
Как можно было вернуть чч:мм
ALTER FUNCTION [dbo].[fn_GetTotal_Hour_and_Munites] ( @DateFrom Datetime, @DateTo Datetime ) RETURNS DECIMAL(18,2) AS BEGIN DECLARE @TotalWorkDays INT, @TotalTimeDiff DECIMAL(18, 2) SET @TotalWorkDays = DATEDIFF(DAY, @DateFrom, @DateTo) -(DATEDIFF(WEEK, @DateFrom, @DateTo) * 2) -CASE WHEN DATENAME(WEEKDAY, @DateFrom) = 'Sunday' THEN 1 ELSE 0 END+CASE WHEN DATENAME(WEEKDAY, @DateTo) = 'Saturday' THEN 1 ELSE 0 END; SET @TotalTimeDiff = ( SELECT DATEDIFF(SECOND, ( SELECT CONVERT(Time, @DateFrom) ), ( SELECT CONVERT(Time, @DateTo) )) %3600 /60 ); RETURN (SELECT(@TotalWorkDays *24*60*60) + @TotalTimeDiff) END
==========================================
эта функция возвращает только минуты 00:23
==========================================
но не говорите менять на /3600.0
RETURN (SELECT(@TotalWorkDays * 24) + @TotalTimeDiff)
потому что он возвращается на секунду больше, чем 59, как 10:86
Я просто хочу, чтобы Макс секунда была 59
например, в 10:59
Что я уже пробовал:
Я пытался измениться
)) /3600
);
RETURN (SELECT(@TotalWorkDays *24) + @TotalTimeDiff)
================================================
эта функция возвращает OUTPOT часов только 10:00
================================================
как можно вернуть час с минутами? 10:23, чтобы быть максимальным, как 10:59, а не 10:86