webForumDet fria alternativet
Logga in / Bli medlem

Datumvariabel i SQL

Databaser & SQL

3 svar · 254 visningar · startad av i-or

Medlem sedan nov. 2001294 inlägg
Trådstart#1
SQL = "SELECT f_id, f_guestbook FROM t_members WHERE f_id = " & Trim(Session("ID"))
RecSet.Open SQL, Connect, 3, 3
f_guestbook = RecSet("f_guestbook")
RecSet.Close

SQL = "SELECT Count(*) FROM t_guestbook WHERE f_to = " & Trim(Session("ID")) & " AND f_date > '" & f_guestbook & "'"
RecSet.Open SQL, Connect, 3, 3 
Messages = RecSet(0) 
RecSet.Close

Jag får inte denna kod att fungera. Andra SQL-satsen räknar alla poster oavsett om f_date är större (nyare) än f_guestbook. Om jag jämför två värden i samma tabell fungerar det utan problem, men när jag ska jämföra ett datum från en tabell med en variabel (som exemplet ovan) blir det fel. Jag har provat lite fram och tillbaka med CDate men utan resultat (f_guestbook och f_date är både datetime-fält).

Vad är felet?

Medlem sedan dec. 200012 464 inlägg
#2

Det är väl något problem med format. Om du gör en join direkt i SQL så borde du slippa det problemet.

SQL = "SELECT count(f_to) FROM t_members left join t_guestbook on f_to = f_id and f_date > f_guestbook WHERE f_id = " & Session("ID")
set RecSet = Connect.execute(sql) 
Messages = RecSet(0) 
RecSet.Close
Medlem sedan nov. 2001294 inlägg
#3

Tack så mycket för hjälpen. Efter lite modifieringar fick jag det att funka med denna kod:

SQL = "SELECT Count(*) AS Count FROM t_guestbook INNER JOIN t_members ON t_guestbook.f_date > t_members.f_guestbook AND t_guestbook.f_to = t_members.f_id WHERE t_guestbook.f_to = " & Session("ID")
RecSet.Open SQL, Connect, 3, 3 
Messages = RecSet("Count") 
RecSet.Close

Du skrev:
Set RecSet = Connect.execute(SQL)

Jag skriver:
Set RecSet = Server.CreateObject("ADODB.RecordSet")
RecSet.Open SQL, Connect, 3, 3

Är det prestandasnålare att skriva på ditt sätt?

Medlem sedan mars 20023 561 inlägg
#4

Det är mindre prestandakrävande att använda LarsG´s variant.

267 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)