1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
CREATE FUNCTION Fn
(
@dateActu datetime
@moment varchar(10)
)
RETURNS datetime
AS
BEGIN
DECLARE @numDay VARCHAR(10)
DECLARE @dateDeb datetime
SET @numDay = CASE DATEPART(weekday, @dateActu)
WHEN 1 THEN 'Lundi'
WHEN 2 THEN 'Mardi'
WHEN 3 THEN 'Mercredi'
WHEN 4 THEN 'Jeudi'
WHEN 5 THEN 'Vendredi'
END
SELECT @dateDeb = CASE @moment
WHEN 'matinD' THEN matinDebut
WHEN 'matinF' THEN matinFin
WHEN 'apremD' THEN apremDebut
WHEN 'apremF' THEN apremFin
END
FROM dbo.plage_horaire WHERE jour = @numDay
SET @dateDeb = DATEADD(year,DATEPART(year, @dateActu)-DATEPART(year, @dateDeb), @dateDeb)
SET @dateDeb = DATEADD(month,DATEPART(month, @dateActu)-DATEPART(month, @dateDeb), @dateDeb)
SET @dateDeb = DATEADD(day,DATEPART(day, @dateActu)-DATEPART(day, @dateDeb), @dateDeb)
RETURN @dateDeb
END
GO |
Partager