Hallo zusammen,
ich möchte für den Start eines Intervalls ERSTELLUNGSDATUM + 3 vornehmen. Wochenende sollen dabei nicht berücksichtigt bzw. übersprungen werden. Wenn ich z.B. folgendes nehme:
CONVERT(DATETIME, [ERSTELLUNGSDATUM], 102)+3
klappt es nur für Montag und Dienstag:
Mo --> Do --> OK
Di --> Fr --> OK
Mi --> Sa --> MÜSSTE MONTAG SEIN
Do --> So --> MÜSSTE DIENSTAG SEIN
Fr --> Mo --> MÜSSTE MITTWOCH SEIN
Vielleicht kann man folgende Funktion anpassen? Für Mittwoch sollte es eigentlich passen aber die Tage ergeben bei mir noch Samstag.
CREATE FUNCTION [dbo].[DAYSADDNOWK](@addDate AS DATE, @numDays AS INT)
RETURNS DATETIME
AS
BEGIN
SET @addDate = DATEADD(d, @numDays, @addDate)
IF DATENAME(DW, @addDate) = 'sunday' SET @addDate = DATEADD(d, 1, @addDate)
IF DATENAME(DW, @addDate) = 'saturday' SET @addDate = DATEADD(d, 2, @addDate)
RETURN CAST(@addDate AS DATETIME)
END
GO
ich möchte für den Start eines Intervalls ERSTELLUNGSDATUM + 3 vornehmen. Wochenende sollen dabei nicht berücksichtigt bzw. übersprungen werden. Wenn ich z.B. folgendes nehme:
CONVERT(DATETIME, [ERSTELLUNGSDATUM], 102)+3
klappt es nur für Montag und Dienstag:
Mo --> Do --> OK
Di --> Fr --> OK
Mi --> Sa --> MÜSSTE MONTAG SEIN
Do --> So --> MÜSSTE DIENSTAG SEIN
Fr --> Mo --> MÜSSTE MITTWOCH SEIN
Vielleicht kann man folgende Funktion anpassen? Für Mittwoch sollte es eigentlich passen aber die Tage ergeben bei mir noch Samstag.
CREATE FUNCTION [dbo].[DAYSADDNOWK](@addDate AS DATE, @numDays AS INT)
RETURNS DATETIME
AS
BEGIN
SET @addDate = DATEADD(d, @numDays, @addDate)
IF DATENAME(DW, @addDate) = 'sunday' SET @addDate = DATEADD(d, 1, @addDate)
IF DATENAME(DW, @addDate) = 'saturday' SET @addDate = DATEADD(d, 2, @addDate)
RETURN CAST(@addDate AS DATETIME)
END
GO