webForumDet fria alternativet

senaste 7 dagarna

8 svar · 267 visningar · startad av Pellsater

PellsaterMedlem sedan juli 2000154 inlägg
#1

Hej!

har en databas i Access som loggar alla besökare. Jag räknar ut hur många som varit inne totalt och hur många som varit inne de senaste 7 dagarna. När jag kollar nu så får jag samma resultat på de båda... Den koda jag har för att plocka ut antalet de senaste 7 dgr.. verkar inte funka för den skriver ut det totala antalet besök som sidan haft

 <%
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../counter.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
sql = "Select Count(*) as X from counter where datum > #"&DateAdd("d",-7,Now)&"#"
rs.Open sql,conn,3,3
antal = rs("X")
%>

Ser nån felet?

MogMedlem sedan nov. 2003266 inlägg
#2

Har du testat att skriva datum statiskt i frågan istället för att använda DateAdd("d",-7,Now) ?

where datum > #2004-04-10 23:58:29#"

DateAdd("d",-7,Now) ger resultatet 2004-04-10 23:58:29.
Lite osäker men jag undrar om inte formatet på fältet i databasen måste vara samma som du skickar in, alltså (ÅÅÅÅ-MM-DD HH:MM:SS).

PellsaterMedlem sedan juli 2000154 inlägg
#3

ok hur skriver ja gom formatet är så här

4/5/2004

Bengt

MogMedlem sedan nov. 2003266 inlägg
#4

Sorry, tänkte inte, jag kör Session.LCID = 1053 på min burk.
Du kan ju skriva ut funktionen med

Response.Write(DateAdd("d",-7,Now))

och kolla formatet på din burk.
Jag brukar försöka se till att funktionen returnerar samma format som det i databasen, har jag inget klockslag i db:n finns det ingen anledning att fråga efter det.

PellsaterMedlem sedan juli 2000154 inlägg
#5

jag fixade till det i Databasen istället men fick ett annat fel nu!

 <%

Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../counter.mdb")&";"
Set RS = Server.CreateObject("ADODB.Recordset")
sql = "Select Count(*) as X from counter where month = 4"
RS.Open sql,conn,3,3
antal = rs("X")
%>

Får
"Data type mismatch in criteria expression. "

MogMedlem sedan nov. 2003266 inlägg
#6

Vad har du för datatyp på month ?
Testa med fnuttar.

sql = "Select Count(*) as X from counter where month = '4'"
@ndersMedlem sedan juni 200032 969 inlägg
#7

Month är inget bra kolumnnamn, då det är namnet på en funktion. Byt namn på fältet.

Jesper TMedlem sedan nov. 20017 144 inlägg
#8

DateAdd går väll att plocka in direkt i sql-satsen också?!

sql = "Select Count(*) as X from counter where datum > DateAdd('d',-7,Now())"
Engine^Medlem sedan dec. 20003 887 inlägg
#9

Eller med en annan datumfunktion möjligen...

SELECT Count(*) AS X
FROM counter
WHERE DateDiff("d", Now(), datum) >= -7
135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)