webForumDet fria alternativet

sql-fråga

13 svar · 498 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 182 inlägg
#1

Jag tänkte skriva följande sats men jag vet inte hur man skriver för att ta bort inlägg som är ex 20 minuter gamla

DELETE FROM tblUsers_messagescroll WHERE messageTime (är mer än 20 minuter från den aktuella tiden)

Så från att nån skriver ett meddelande så ska det tas bort efter 20 minuter

GuffaMedlem sedan juni 2004533 inlägg
#2

Använd DateAdd för att dra av 20 minuter från aktuellt tid, och jämför med det.

WebbisNetMedlem sedan feb. 20032 182 inlägg
#3

e inte så bra på DateAdd :-)

N0M0NEYMedlem sedan juli 200543 inlägg
#4

Inte dateadd utan datediff..
DELETE FROM tblUsers_messagescroll WHERE DateDiff("n",messageTime,now()) => 20
Tror jag ..

GuffaMedlem sedan juni 2004533 inlägg
#5

Jo, DateAdd.

delete from tblUsers_messagescroll where messageTime < DateAdd("n", -20, Now())

Visserligen kan man få det att fungera med DateDiff också, men jag föredrar DateAdd. Dels är den mer exakt, eftersom DateDiff bara räknar skillnaden i hela minuter, medan metoden med DateAdd blir exakt på sekunden. Dels är det enklare att se vad den gör, ifall man sätter datumen fel i DateDiff så får man ett negativt värde istället. Dessutom så blir frågan snabbare när datumfältet inte ingår i funktionsanropet.

N0M0NEYMedlem sedan juli 200543 inlägg
#6

Okej tänkte inte att man kunde göra så..
Men visst de funkar ju..

LarsGMedlem sedan dec. 200012 465 inlägg
#7

Flyttas från ASP

WebbisNetMedlem sedan feb. 20032 182 inlägg
#8

jag får

Microsoft VBScript compilation error '800a03ee'

Expected ')'

/smsmessage.asp, line 7

objConn.Execute("delete from tblUsers_messagescroll where messageTime < DateAdd("n", -2, Now())")
---------------------------------------------------------------------------------^

JosefMedlem sedan mars 20023 123 inlägg
#9
objConn.Execute("delete from tblUsers_messagescroll where messageTime < DateAdd(""n"", -2, Now())")
WebbisNetMedlem sedan feb. 20032 182 inlägg
#10

Josef skrev:

objConn.Execute("delete from tblUsers_messagescroll where messageTime < DateAdd(""n"", -2, Now())")

tack, nu ska jag se om koden körs

WebbisNetMedlem sedan feb. 20032 182 inlägg
#11

satte tiden till 2 minuter, efter 3-4 minuter så var posten fortfarande kvar

@ndersMedlem sedan juni 200026 914 inlägg
#12
  1. Du borde ha apostrofer runt n i dateadd-delen.
  2. Är du säker på att du kört SQL-frågan efter det att de 2 minutrarna passerat då?

Kör gärna en select-fråga med samma villkor som din delete, så får du se om datat verkar vara riktigt.

WebbisNetMedlem sedan feb. 20032 182 inlägg
#13

hur ska jag se om den körs med Set delete1=objConn.Execute("SELECT * FROM tblUsers_messagescroll where messageTime < DateAdd(""n"", 2, Now())")

@ndersMedlem sedan juni 200026 914 inlägg
#14

Du vet väl om du har exekverat DELETE-frågan?

Genererad på 508 ms · cache AV · v20260730165559-full.f96bc7eb