MzMedlem sedan aug. 2001136 inlägg
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
------------------
~ Mz ~
LarsGMedlem sedan dec. 200012 465 inlägg
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
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 20 jan 2002]
MzMedlem sedan aug. 2001136 inlägg
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?
------------------
~ Mz ~
MzMedlem sedan aug. 2001136 inlägg
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]
LarsGMedlem sedan dec. 200012 465 inlägg
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
------------------
essentitia preter non sans multiplicandum
MzMedlem sedan aug. 2001136 inlägg
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?
------------------
~ Mz ~
LarsGMedlem sedan dec. 200012 465 inlägg
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]
MzMedlem sedan aug. 2001136 inlägg
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?
------------------
~ Mz ~
MzMedlem sedan aug. 2001136 inlägg
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!
------------------
~ Mz ~
LarsGMedlem sedan dec. 200012 465 inlägg
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 "
------------------
essentitia preter non sans multiplicandum