Normalde SQL üzerinde zaman formatı dönüştürücüler ve fonksiyonlar bu işinizi temelde çözecektir. Fakat bu fonksiyonlar saat dilimi 24′ ün üstüne çıktığı anda çevrimde hata yapmaktadır. İşte bunu önlemek amacıyla en temelde kendi fonksiyonunuza ihtiyaç duymaya başlarsınız.
Bu fonksiyonumuz da bu işlemi yaparak sizlere saniyeden değerleri alıp “00:00:00” formatın da bir çıktı almanızı sağlayacaktır. İşte kodumuz aşağıdaki gibidir;
CREATE FUNCTION [dbo].[fConvertTimeFormat]
(
@duration INT
)
RETURNS NVARCHAR(20)
AS
BEGIN
DECLARE @Minute INT
DECLARE @Second INT
DECLARE @Hour INT
DECLARE @Rump INT
DECLARE @strTime NVARCHAR(20)
SET @Rump = @duration
SET @Minute = 0
SET @Hour = 0
--DAKİKA HESAPLANIYOR
WHILE(@Rump>59)
BEGIN
SET @Rump = @Rump - 60
SET @Minute = @Minute + 1
END
SET @Second = @Rump
--SAAT HESAPLANIYOR
SET @Rump = @Minute
WHILE(@Rump>59)
BEGIN
SET @Rump = @Rump - 60
SET @Hour = @Hour + 1
END
SET @Minute = @Rump
--TIME FORMATI UYGULANIYOR
IF(@Hour <=9)
SET @strTime = '0' + CAST(@Hour AS VARCHAR) + ':'
ELSE
SET @strTime = CAST(@Hour AS VARCHAR) + ':'
IF(@Minute<=9)
SET @strTime = @strTime + '0' + CAST(@Minute AS VARCHAR) + ':'
ELSE
SET @strTime = @strTime + CAST(@Minute AS VARCHAR) + ':'
IF(@Second<=9)
SET @strTime = @strTime + '0' + CAST(@Second AS VARCHAR)
ELSE
SET @strTime = @strTime + CAST(@Second AS VARCHAR)
RETURN @strTime
END