webForumDet fria alternativet

den ska inte räkna alla poster

ASP

11 svar · 317 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1
<%
startTid = "2000-01-01 12:00:00" 
slutTid = ""&Date&" 18:00:00"
%>

<%
Set oRS = Connect.Execute("select count(*) as no from inloggningar where vad = 'loggain' AND [datum] BETWEEN #" & startTID & "# AND #" & slutTid & "#")
Response.Write oRS("no")
%>

Denna kod här ovan räknar alla poster som innehåller loggain i kolumnen vad.

Mitt problem är att den andra koden inte fungerar. Alltså jag vill att den ska hämta alla poster som innehåller timtalet
mellan 12 till 18. Men det verkar inte fungera för den tar alla poster.

datum är av typen Datum/Tid och innehåller tex 2002-04-02 16:24

Medlem sedan feb. 20011 498 inlägg
#2

Ingen som vet?

Medlem sedan juni 200032 967 inlägg
#3

Hur ser den färdiga SQL-frågan ut?

Medlem sedan feb. 20011 498 inlägg
#4

Om du menar när jag skriver ut den, då ser den ut så här:

select count(*) as no from inloggningar where vad = 'loggain' AND [datum] BETWEEN #2000-01-01 12:00:00# AND #2002-04-02 13:00:00#
Medlem sedan juni 200032 967 inlägg
#5

Det där kommer inte att fungera, eftersom den kommer att ta alla poster från starten, och det ska den göra. Du får använda dig av funktionen DatePart() som jag tror ska finnas att tillgå i Jet-SQL. Jag är dock inte säker på användandet, men det borde se ut någonting sånt härnt:

select count(*) as no from inloggningar where vad = 'loggain' AND DatePart('h', [datum]) >11 and  DatePart('h', [datum]) <18

Jag kan dock inte Access, så det är en gissning från min sida.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#6

Tack @nders!

Koden fungerar perfekt :birp

Medlem sedan feb. 20011 498 inlägg
#7

Märkte precis att @nders kod inte fungerade så bra, om man tar tex klockslagen 01 till 06 med den så kommer den skriva ut 0 eftersom datepart räknar med bara 1 och 6.

alltså i databasen står det 2002-04-03 02:54

med datepart så blir det 2002-04-03 2:24

hur ska man göra så att koden funkar med även med timtal som börjar på 0?

Medlem sedan juni 200032 967 inlägg
#8

Det ska funka.

Hur skriver du SQL-frågan?
Jag förstår inte problemet.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#9

Vi säger att i kolumnen datum så står detta :
2002-04-02 04:25

Sen räknar jag med denna kod:

<%
Set oRS = Connect.Execute("select count(*) as no from inloggningar where vad = 'loggain' AND DatePart('h', [datum]) >01 and DatePart('h', [datum]) <09 ")
Response.Write oRS("no")
%>

Den koden här ovan räknar bara timtal med 2002-04-02 4:25
och inte 2002-04-02 04:25

för jag testade att ta bort nollan i timtalet och då skrev den ut 1.

Medlem sedan juni 200032 967 inlägg
#10

Du ska inte ha med någon nolla i sql-frågan. det är vanliga tal vi pratar om, inga strängar.

Om du tar bort inledande nolla på båda timtalen i SQL-frågan, blir det fortfarande fel?

Mvh,

Medlem sedan feb. 20011 498 inlägg
#11
<%
Set oRS = Connect.Execute("select count(*) as no from inloggningar where vad = 'loggain' AND DatePart('h', [datum]) >1 and DatePart('h', [datum]) <9 ")
Response.Write oRS("no")
%>

Om jag skriver så så skriver den ut 0 men jag vet att det finns timtal som mellan 1 och 9 men dem börjar med 0

Medlem sedan feb. 20011 498 inlägg
#12

Ingen som vet hur man kan lösa det?

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)