webForumDet fria alternativet

Tidsjämförelse ger Data type mismatch

ASPur ASP

5 svar · 442 visningar · startad av foks

foksMedlem sedan juli 200280 inlägg
#1

Jag håller på att bygga en räknare med Accessdatabas och lägger då in besökarna i en temporär databas för att se om de är unika eller inte. Det görs med raden:

Connect.Execute( "INSERT INTO temp (temp_url, temp_ip, temp_datetime) VALUES('"&url&"','"&ip&"','"&now()&"')" )

Sen ska jag radera de som besökt en sida för mer än 24 timmar sedan, det gör jag med:

Connect.Execute("DELETE FROM temp WHERE temp_datetime< '"&DateAdd("d", -1,now())&"'")

Den sistnämnda raden ger dock felmeddelandet:
Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.

Fältet i tabellen är av typen "Tid/Datum". Någon som vet vad det kan vara för fel?

LarsGMedlem sedan dec. 200012 464 inlägg
#2
Connect.Execute "DELETE FROM temp WHERE temp_datetime< DateAdd('d', -1,now())"
foksMedlem sedan juli 200280 inlägg
#3

Ahh, tack så mycket. :)

GuffaMedlem sedan juni 2004533 inlägg
#4

Ifall du vill använda datumkonstanter i en SQL-fråga så använder sig Access av # runt datum istället för apostrofer.

Connect.Execute("DELETE FROM temp WHERE temp_datetime< #" & DateAdd("d", -1,now()) & "#")
Jesper TMedlem sedan nov. 20017 144 inlägg
#5

Guffa skrev:

Ifall du vill använda datumkonstanter i en SQL-fråga så använder sig Access av # runt datum istället för apostrofer.

Access 97 vill säga.

GuffaMedlem sedan juni 2004533 inlägg
#6

Jesper T skrev:

Guffa skrev:

Ifall du vill använda datumkonstanter i en SQL-fråga så använder sig Access av # runt datum istället för apostrofer.

Access 97 vill säga.

Jag använder Access 2003, och den accepterar inte apostrofer runt datum.

125 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)