Je veux obtenir le dernier samedi d'aujourd'hui + 21 jours.
Pour ce faire, j'ai écrit le script ci-dessous. Mais le problème est que je n'arrive pas à faire en sorte que success renvoie la valeur du résultat.
Je veux créer cette fonction dans SQL Server et obtenir cette valeur dans une procédure stockée à l'endroit voulu.
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
DECLARE @NumOfDays INT
DECLARE @resultDate smalldatetime
SET @StartDate = GETDATE()
SET @EndDate = GETDATE()+21
SET @NumOfDays = DATEDIFF(DD,@StartDate , @EndDate) + 1 ;
WITH Tens AS
(
SELECT 1 N UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1
),
HUNDREDS AS
(
SELECT T1.N FROM TENS T1 CROSS JOIN TENS T2
),
THOUSANDS AS
(
SELECT T1.N FROM HUNDREDS T1 CROSS JOIN HUNDREDS T2
),
Numbers AS
(
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 0)) RN FROM THOUSANDS
)
SELECT TOP 1
DATEADD(DD, (RN - 1), @StartDate) SaturdayDates
FROM
Numbers
WHERE
RN <= @NumOfDays
AND DATENAME (WEEKDAY, (DATEADD(DD, (RN - 1), @StartDate))) = 'Saturday'
ORDER BY
SaturdayDates DESC
Pouvez-vous me guider pour atteindre mon objectif ? Merci de votre compréhension.