---
title: "Veckoproblem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/50459-veckoproblem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "i-or"
published: "2002-08-15T16:18:05.000Z"
updated: "2002-08-16T15:59:34.000Z"
replies: 1
views: 216
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/50459-veckoproblem"
---

# Veckoproblem

## #1 — i-or, 2002-08-15T16:18Z

Jag använder DatePart för att sortera ut poster med datum i en viss vecka. SQL-uttrycket ser ut så här:

```
Show = "SELECT * FROM Tabell WHERE DatePart('ww', Dat, 2, 2) = " & Request.QueryString("week") & " AND DatePart('yyyy', Dat, 2, 2) = " & Request.QueryString("year") & ""
```

 

Problemet är att vecka 1 innehåller datum från slutet av året innan. T ex ger 31 december 2002, vecka 1 men år 2002, istället för år 2003 som den borde ge. 

För övrigt betyder sista tvåan i DatePart-uttrycket: "vbFirstFourDays, Start with the week that has at least four days in the new year."

Det är detta som gör att de sista datumen i december blir vecka 1.

Permalänk: https://www.webforum.nu/p/50459

## #2 — i-or, 2002-08-16T15:59Z

Om någon är intresserad löste jag problemet på detta sätt (aningen stolt själv även om det säkert inte är den bästa lösningen):

```
<% Show = "SELECT DatePart('ww', Dat, 2, 2), Year(Dat), min(Dat) FROM Diary GROUP BY DatePart('ww', Dat, 2, 2), Year(Dat) ORDER BY min(Dat) DESC"

RecSet.Open Show, Connect, 3, 3 
Do While Not RecSet.EOF 
Dat = RecSet(0)
Dat2 = RecSet(1) 

If Dat = 1 Then
Set RecSet2 = Server.CreateObject("ADODB.RecordSet")
Show = "SELECT * FROM Diary WHERE DatePart('ww', Dat, 2, 2) = 1 AND Year(Dat) = " & Dat2 & " AND Month(Dat) = 1"
RecSet2.Open Show, Connect, 3, 3
If RecSet2.EOF Then 
Dat2 = Dat2 + 1 %>
<TR><TD><SPAN CLASS="subheading"><A HREF="diary.asp?diary=workouts&week=<% =Dat %>&year=<% =Dat2 %>">Week <% =Dat %>, <% =Dat2 %></A></SPAN></TD></TR> 
<% End If 
RecSet2.Close

ElseIf Dat > 51 Then
Set RecSet2 = Server.CreateObject("ADODB.RecordSet")
Show = "SELECT * FROM Diary WHERE DatePart('ww', Dat, 2, 2) > 51 AND Year(Dat) = " & Dat2 & " AND Month(Dat) = 12"
RecSet2.Open Show, Connect, 3, 3
If RecSet2.EOF Then 
Dat2 = Dat2 - 1 %> 
<TR><TD><SPAN CLASS="subheading"><A HREF="diary.asp?diary=workouts&week=<% =Dat %>&year=<% =Dat2 %>">Week <% =Dat %>, <% =Dat2 %></A></SPAN></TD></TR> 
<% End If 
RecSet2.Close 

Else %>

<TR><TD><SPAN CLASS="subheading"><A HREF="diary.asp?diary=workouts&week=<% =Dat %>&year=<% =Dat2 %>">Week <% =Dat %>, <% =Dat2 %></A></SPAN></TD></TR>

<% End If %>
```

Permalänk: https://www.webforum.nu/p/754982

---

Tråden på webben: https://www.webforum.nu/amne/asp/50459-veckoproblem
