Я нашел функцию SQL, который получит второй в качестве входного параметра и возврата секунд дд: чч: мм: сс формат электронного г в течение 93600
секунд он возвращает 1:02:00:00
Как отформатировать время от dd: hh: mm: ss до hh: mm: ss в SQL-сервере?
это означает 1 день 2 часа 0 минут 0 секунд.
Функция, я использовал это:
FUNCTION [dbo].[udfTimeSpanFromSeconds]
(
@Seconds int
)
RETURNS varchar(15)
AS
BEGIN
DECLARE
--Variable to hold our result
@DHMS varchar(15)
--Integers for doing the math
, @Days int --Integer days
, @Hours int --Integer hours
, @Minutes int --Integer minutes
--Strings for providing the display
, @sDays varchar(5) --String days
, @sHours varchar(2) --String hours
, @sMinutes varchar(2) --String minutes
, @sSeconds varchar(2) --String seconds
--Get the values using modulos where appropriate
SET @Hours = @Seconds/3600
SET @Minutes = (@Seconds % 3600) /60
SET @Seconds = (@Seconds % 3600) % 60
--If we have 24 or more hours, split the @Hours value into days and hours
IF @Hours > 23
BEGIN
SET @Days = @Hours/24
SET @Hours = (@Hours % 24)
END
ELSE
BEGIN
SET @Days = 0
END
--Now render the whole thing as string values for display
SET @sDays = convert(varchar, @Days)
SET @sHours = RIGHT('0' + convert(varchar, @Hours), 2)
SET @sMinutes = RIGHT('0' + convert(varchar, @Minutes), 2)
SET @sSeconds = RIGHT('0' + convert(varchar, @Seconds), 2)
--Concatenate, concatenate, concatenate
SET @DHMS = @sDays + ':' + @sHours + ':' + @sMinutes + ':' + @sSeconds
RETURN @DHMS
END
и выберите команду, которая будет получать выход
select dbo.udfTimeSpanFromSeconds('93600')
это показывает мне результат:
Теперь мне нужно этот выход в формате hh:mm:ss
, например, для пример 26:00:00
это означает 26 часов 0 минут и 0 секунд.
Я использую SQL Server 2008. Спасибо заранее.
Я думаю, что это так просто, как снимаете, если условие. если условие преобразует час в дни. поэтому его удаление решит вашу проблему. Я не проверял, хотя, но думаю, что это сработает. –
Вы хотите получить ожидаемый результат от выхода функции? Или вы хотите изменить логику в самой функции? – Jesuraja
@Ankit Bajpai, После удаления, если он вернет мне null. – Waqas