Det hör nog ihop med olika datumformat.
SQL = "SELECT * FROM play WHERE day(pDate) = day(now()) ORDER BY pDate"
Set RecSet = Connect.Execute(SQL)
red: Förstår inte avsikten med for-loopen. Speciellt kontrollen om StrToDay < 10
9 svar · 178 visningar · startad av Mz
Hejsan!
Detta fungerar fint på min IIS men inte på Baloou, någon som kan hjälpa mig skapa en bättre SQL-fråga?
strToDay = mid(Date(), 6, 2)
If strToDay < 10 Then
strToDay = "0"& i
Else
strToDay = strToDay
End if
SQL = "SELECT * FROM play WHERE mid(pDate, 6, 2) = "& strToDay &" ORDER BY pDate"
Set RecSet = Connect.Execute(SQL)
• i är en FOR-sats som räknar 1 to 3
• pDate är av datatypen kort Datum/Tid, ex 2002-01-20
Det hör nog ihop med olika datumformat.
SQL = "SELECT * FROM play WHERE day(pDate) = day(now()) ORDER BY pDate"
Set RecSet = Connect.Execute(SQL)
red: Förstår inte avsikten med for-loopen. Speciellt kontrollen om StrToDay < 10
Hej LarsG.
Det jag vill göra är att hämta alla poster i respektive månad.
Varje post har ett eget datum, ex. 2002-01-20, själva månaden plockar jag ut med mid(pDate, 6, 2), men kan jag inte använda det i SQL-satsen?
Jag postar hela den snutten så kanske du förstår bättre vad det är jag försöker åstadkomma 
Response.Write "<table border=0 cellpadding=10><tr>"& vbcrlf
strToDay = mid(Date(), 6, 2)
For i = strToDay To 3
If strToDay < 10 Then
strToDay = "0"& i
Else
strToDay = strToDay
End if
SQL = "SELECT * FROM play WHERE mid(pDate, 6, 2) = "& strToDay &" ORDER BY pDate"
Set RecSet = Connect.Execute(SQL)
Dim rsDate
rsDate = RecSet("pDate")
Response.Write "<td valign=top><b>"& ShowManad(mid(rsDate, 6, 2)) &"</b><br>"& vbcrlf
Response.Write SQL &"<br><br>"
Do Until RecSet.EOF
Dim rsDate2, rsPlace, rsCity
rsDate2 = RecSet("pDate")
rsPlace = RecSet("pPlace")
rsCity = RecSet("pCity")
If rsDate2 > Date() Then
Response.Write rsDate2 &" "& rsPlace &" i "& rsCity &"<br><img src=images/trans.gif hight=5 width=5><br>"& vbcrlf
Else
Response.Write "<s>"& rsDate2 &" "& rsPlace &" i "& rsCity &"</s><br><img src=images/trans.gif hight=5 width=5><br>"& vbcrlf
End If
RecSet.MoveNext
If RecSet.EOF Then Response.Write "</td>"
Loop
Next
Response.Write "</tr></table>"& vbcrlf
[Redigerat av Mz den 20 jan 2002]
Det finns en funktion som heter month som du skulle kunna använda. Den returnerar månaden i ett datum som ett nummer mellan 1 och 12.
Jag förstår ändå inte denna
For i = strToDay To 3
Vill du skriva ut för tre månader framåt? I så fungerar det enbart i januari. Du kommer aldrig in i loopen om månad > 3
Hur ska jag använda month i min snutt här då?
Gällande For i = strToDay To 3 stämmer det nu när du säger det... 
Men hur 17 hämtar jag då de denna månads poster samt de 2 nästkommande?
Varför behöver du loopa överhuvudtaget?
Du kan väl skriva sql-satsen som
sql = "select * from play where pDate between now() and dateadd('m',2,now())"
[Redigerat av LarsG den 20 jan 2002]
Jag var inne på det också, men jag fattade inte hur jag skulle göra för att lägga varje månad i en ny kolumn.
Det fungerar bra med bägge modellerna iaf.
, t.o.m min server-ätande-amatör-kod fungerade efter en stund... 
Om jag nu vill dela upp dem i 3 table-kolumner, hur görs det på ett smidigt sätt? Då måste man väl loopa, eller?
Jag kör nu med:
FOR i = 0 To 2
strDate = DateAdd("m",i,Date())
SQL = "SELECT * FROM play WHERE datediff('m',pDate,#" & strDate & "#) = 0 ORDER BY pDate"
Fungerar bra, så det får ligga så. 
Tack för all hjälp!
Jo, det är kanske enklast att loopa. Annars så kan man titta på posterna och hålla reda på när det kommer en ny månad.
pmonth = 0
while not rs.eof
if pMonth <> month(rs("pdate")) then
'ny månad
pmonth = month(rs("pdate"))
end if
'...
wend
Jag kom på att den select jag skrev i förra inlägget inte fungerar så bra. Den tar bara poster från dagens datum och inte från den första i månaden.
sDate = cdate(year(now()) & "-" & month(now()) & "-01")
eDate = dateadd("d",-1,Dateadd("m",3,sDate))
sql = "select * from play where pDate between #" & sDate & "# and #" & eDate & "# order by pDate "