Funkcija za racunanje radnog staza
30.03.2012. u 07:52 · pre 177 meseci
#1
Dole je funkcija za racunanje radnog staza, ili ti pak starosti, u t-SQL, vraca podatak u formatu yy/mm/dd
Ulazni parametri su pocetni i krajnji datum. Ako nekome treba moze slobodno da je koristi.
CREATE FUNCTION dbo.KalendarskiStaz
(
@DatumOd Date,
@DatumDo Date
)
RETURNS Char(8)
AS
BEGIN
DECLARE @Mes Int,
@Dan Int,
@God Int,
@rDat Date
SET @DatumDo = DATEADD(d,1,@DatumDo)
SET @mes = DATEDIFF(m, @DatumOd, @DatumDo)
IF DATEADD(m, @Mes, @DatumOd) > @DatumDo
BEGIN
SET @Mes = @Mes - 1.
END
SET @Rdat = DATEADD(m, @Mes, @DatumOd)
SET @Dan = DATEDIFF(d,@Rdat,@DatumDo)
SET @God = @Mes / 12
SET @MES = @MES % 12
RETURN RIGHT('00' + CAST(@God AS VARCHAR(2)) ,2 ) + '/' +
RIGHT('00' + CAST(@Mes AS VARCHAR(2)) ,2 ) + '/' +
RIGHT('00' + CAST(@Dan AS VARCHAR(2)) ,2 )
END
Ulazni parametri su pocetni i krajnji datum. Ako nekome treba moze slobodno da je koristi.
CREATE FUNCTION dbo.KalendarskiStaz
(
@DatumOd Date,
@DatumDo Date
)
RETURNS Char(8)
AS
BEGIN
DECLARE @Mes Int,
@Dan Int,
@God Int,
@rDat Date
SET @DatumDo = DATEADD(d,1,@DatumDo)
SET @mes = DATEDIFF(m, @DatumOd, @DatumDo)
IF DATEADD(m, @Mes, @DatumOd) > @DatumDo
BEGIN
SET @Mes = @Mes - 1.
END
SET @Rdat = DATEADD(m, @Mes, @DatumOd)
SET @Dan = DATEDIFF(d,@Rdat,@DatumDo)
SET @God = @Mes / 12
SET @MES = @MES % 12
RETURN RIGHT('00' + CAST(@God AS VARCHAR(2)) ,2 ) + '/' +
RIGHT('00' + CAST(@Mes AS VARCHAR(2)) ,2 ) + '/' +
RIGHT('00' + CAST(@Dan AS VARCHAR(2)) ,2 )
END