---
title: "If sats med SQL.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/89298-if-sats-med-sql"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Karin_Parin"
published: "2003-10-23T10:20:50.000Z"
updated: "2003-10-23T13:26:04.000Z"
replies: 6
views: 372
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/89298-if-sats-med-sql"
---

# If sats med SQL..

## #1 — Karin_Parin, 2003-10-23T10:20Z

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..!

Permalänk: https://www.webforum.nu/p/89298

## #2 — @nders, 2003-10-23T10:24Z

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,

Permalänk: https://www.webforum.nu/p/1195296

## #3 — Karin_Parin, 2003-10-23T12:18Z

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.
```

Permalänk: https://www.webforum.nu/p/1195354

## #4 — Nexus86, 2003-10-23T12:28Z

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"
```

Permalänk: https://www.webforum.nu/p/1195360

## #5 — Karin_Parin, 2003-10-23T12:51Z

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

Permalänk: https://www.webforum.nu/p/1195372

## #6 — @nders, 2003-10-23T13:20Z

> 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

Permalänk: https://www.webforum.nu/p/1195388

## #7 — Nexus86, 2003-10-23T13:26Z

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. :)

Permalänk: https://www.webforum.nu/p/1195397

---

Tråden på webben: https://www.webforum.nu/amne/asp/89298-if-sats-med-sql
