webForumDet fria alternativet

Veckoproblem

ASPur ASP

1 svar · 211 visningar · startad av i-or

Medlem sedan nov. 2001294 inlägg
Frågan#1

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.

Medlem sedan nov. 2001294 inlägg
#2

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 %>
128 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)