Ich möchte den vorherigen Dienstag (oder einen beliebigen Tag der Woche) für das angegebene Datum erhalten. Hier ist die Probeneingabe und erwartete Ausgabe für Dienstag:Holen Sie sich den vorherigen Dienstag (oder einen beliebigen Wochentag) für das angegebene Datum
CREATE TABLE #temp(testdate DATETIME);
INSERT INTO #temp(testdate) VALUES
('2015-10-06 01:15'), -- Tue -> Tue 2015-10-06 00:00
('2015-10-07 04:30'), -- Wed -> Tue 2015-10-06 00:00
('2015-10-08 00:30'), -- Thu -> Tue 2015-10-06 00:00
('2015-10-09 21:00'), -- Fri -> Tue 2015-10-06 00:00
('2015-10-10 19:00'), -- Sat -> Tue 2015-10-06 00:00
('2015-10-11 01:15'), -- Sun -> Tue 2015-10-06 00:00
('2015-10-12 13:00'), -- Mon -> Tue 2015-10-06 00:00
('2015-10-13 18:45'), -- Tue -> Tue 2015-10-13 00:00
('2015-10-14 12:15'), -- Wed -> Tue 2015-10-13 00:00
('2015-10-15 10:45'), -- Thu -> Tue 2015-10-13 00:00
('2015-10-16 04:30'), -- Fri -> Tue 2015-10-13 00:00
('2015-10-17 12:15'), -- Sat -> Tue 2015-10-13 00:00
('2015-10-18 00:30'), -- Sun -> Tue 2015-10-13 00:00
('2015-10-19 10:45'), -- Mon -> Tue 2015-10-13 00:00
('2015-10-20 01:15'), -- Tue -> Tue 2015-10-20 00:00
('2015-10-21 23:45'), -- Wed -> Tue 2015-10-20 00:00
('2015-10-22 21:00'), -- Thu -> Tue 2015-10-20 00:00
('2015-10-23 18:45'), -- Fri -> Tue 2015-10-20 00:00
('2015-10-24 06:45'), -- Sat -> Tue 2015-10-20 00:00
('2015-10-25 06:45'), -- Sun -> Tue 2015-10-20 00:00
('2015-10-26 04:30'); -- Mon -> Tue 2015-10-20 00:00
DECLARE @clampday AS INT = 3; -- Tuesday
SELECT -- DATEADD/DATEPART/@clampday/???
Was ist die am besten geeignete Art und Weise des vorherige Dienstag (oder an irgendeinem Tag der Woche) mit T-SQL zu bekommen?
Mögliche Duplikat [Wie bekommt man die „Woche Startdatum“ und „Woche Enddatum“ von Woche Nummer in SQL Server?] (https://stackoverflow.com/questions/1267126/how-do-you-get-the-week-start-date-and-week-end-date-from-week-number-in-sql) –