14. maj 2009 - 11:14Der er
2 kommentarer og 1 løsning
Find startdato og slutdato for sidste uge
Hej :)
Muligvis er jeg helt afsporet her...
Jeg skal hver mandag morgen finde en startdato og en slutdato for sidste uge. F.eks. i mandags (11/05-09) skal der retuneres følgende: startdato : 4/5-09 : 00:00:01 slutdato : 10/5-09 : 23:59:59
Jeg har følgende:
DECLARE @StartDato datetime SET @StartDato = SUBSTRING(CONVERT(VARCHAR(8),CONVERT(VARCHAR, DATEADD(dd, 1 - DATEPART(dw, getdate()), getdate()), 112)-7),1,8)+' 00:00:00' --finder søndag i sidste uge DECLARE @SlutDato datetime SET @SlutDato = SUBSTRING(CONVERT(VARCHAR(8),CONVERT(VARCHAR, DATEADD(dd, 1 - DATEPART(dw, getdate()), getdate()), 112)-1),1,8)+' 23:59:59' --finder sidste søndag
Mit spørgsmål: hvordan tager jeg nemmest højde for den situation hvor man skifter måned midt i ugen? F.eks. den uge der løber fra d. 27/4-09 til d. 3/5-09
--Find mandag i denn uge. set @thisMonday = dateadd(day, -datepart(weekday,@today) + 1, @today)
--Sæt klokkeslet til at være 00:00:00 set @dateAsInt = year(@thisMonday) * 10000 + month(@thisMonday) * 100 + day(@thisMonday) set @thisMonday = convert(datetime, cast(@dateAsInt as char(8)), 112)
--Træk en uge fra, for at få mandag i sidste uge. set @mondayLastWeek = dateadd(week, -1, @thisMonday);
--Træk et sekund fra denne mandag, for at få slutning af søndag sidste uge. set @sundayLastWeek = dateadd(second , -1, @thisMonday)
--Skriv ud værdierne select @mondayLastWeek "mandag sidste uge", @sundayLastWeek "søndag sidste uge"
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.