webForumDet fria alternativet

If sats med SQL..

ASP

6 svar · 366 visningar · startad av Karin_Parin

Medlem sedan okt. 200332 inlägg
Frågan#1

Trots att det finns hits den senaste dagen lagrade i databasen så skrivs "Inga hits den senaste dagen " ut, variabeln antal har ju ett värde som är större än ett..varför kan det komma sig att if satsen inte fungerar...?:l

'## Hits idag ##'
SQL = "SELECT Datum,COUNT(*) AS antal FROM tblHits WHERE Day(Datum) = Day('" & Now() & "') GROUP BY Datum ORDER BY Datum"
Set RS = Conn.Execute(SQL)
IF  antal < 1 THEN
Response.Write "<br>Inga hits senaste dagen<br>"
Else
Response.Write"<td><b><br>För idag, </td><td>" & WeekdayName(Weekday(Date)) & " är "& (RS("antal"))& "</b><br>"
End IF

Tack så länge..!

Medlem sedan juni 200032 967 inlägg
#2

Nix, variabeln antal har inte ett värde som är större än ett. Den har nämligen inget värde alls, eftersom du inte gett den ett värde.

SQL = "SELECT Datum,COUNT(*) AS antal FROM tblHits WHERE Day(Datum) = Day('" & Now() & "') GROUP BY Datum ORDER BY Datum"
Set RS = Conn.Execute(SQL)
[b]antal=Clng(RS("antal"))[/b]
IF  antal < 1 THEN

Men, är du säker på att din SQL-fråga stämmer? Varför har du med Datum i SELECT-delen? Borde du inte också ha med månad och år i WHERE-satsen, så det inte bara duger med valfri 23:e?

Mvh,

Medlem sedan okt. 200332 inlägg
#3

Visst du har helt rätt...tänkte inte på det.. ;) Så nu har jag försökt få till det med en ny SQL fråga..

SQL = "SELECT PageID,COUNT(*) AS antal FROM tblHits WHERE Tid = DatePart(hour,'"& Time &"') AND Datum ='"& FormatDateTime(Now,2)&"'  GROUP BY PageID ORDER BY PageID"

Lagrar tiden i en kolumn som heter Tid och Datum i en kolumn som heter Datum och vill ju jämföra tiden nu med båda kolumnerna... tänker jag fel..
Typerna för Tid är nvarchar och för Datum DateTime.
Får följande felmeddelande..vid denna SQL frågan ovan..

Syntax error converting the nvarchar value '11:57:27' to a column of data type int.
Medlem sedan okt. 20023 030 inlägg
#4

En stark gissning: DatePart är en ASP-funktion och inte en SQL-funktion. :)

R// Detta borde alltså fungera:

SQL = "SELECT PageID,COUNT(*) AS antal FROM tblHits WHERE Tid = " & Hour(Time) & " AND Datum = '" & FormatDateTime(Now, 2) & "' GROUP BY PageID ORDER BY PageID"
Medlem sedan okt. 200332 inlägg
#5

OK, tack.
Men nu har jag provat och tagit bort DatePart och provat din fråga men samma fel kvarstår...

Syntax error converting the nvarchar value '11:57:27' to a column of data type int.

Vad kan det bero på..?
//Karin

Medlem sedan juni 200032 967 inlägg
#6

Typerna för Tid är nvarchar och för Datum DateTime.

Lagra datum och tid i datetimefält, annars kan du inte använda de datumfunktioner (till exempel DatePart) som finns.

mvh

Medlem sedan okt. 20023 030 inlägg
#7

Bytte du även ut DatePart mot Hour som jag gjorde? Hur ser din SQL-sats ut nu?

R// Man kan ju såklart använda DatePart men jag finner det mycket enklare med Hour. :)

R2// Du skulle inte ha utan båda. Bara för att förtydliga. :)

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)