Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 15:58 Der er 16 kommentarer og
1 løsning

Delete from tabel

Jeg skal kunne slette bruger fra systemet, som ikke har godkendt deres profil efter 48 timer, har forsøgt med det her:

Conn.execute = "DELETE FROM members where dato = '" & doMysqlDateTime() & "' -48  AND godkendt = '0' "

Jeg er næsten klar over at -48 ikke kan stå alene, men hvordan så?
Avatar billede nute Nybegynder
27. februar 2004 - 16:13 #1
prøv:

Conn.execute = "DELETE FROM members where dato = '" & DateAdd( "d", doMysqlDateTime(),-48) & "'  AND godkendt = '0' "
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:13 #2
Er de mySQL?
Den trækker nok 48 dage fra.

Men du kan bruge DATE_ADD eller DATE_SUB samt rette = til <= eller skal de være præsis 48 timer gamle

Conn.execute = "DELETE FROM members where dato <= DATE_SUB('" & doMysqlDateTime() & "', INTERVAL HOUR 48)  AND godkendt = '0' "

http://www.mysql.com/doc/en/Date_and_time_functions.html
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:14 #3
men denne her skulle virke bare skervet lidt om
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:15 #4
arhh.. crap send knap:

Conn.execute = "DELETE FROM members where DATE_ADD(dato, INTERVAL HOUR 48) <= Now()  AND godkendt = '0' "
Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 16:26 #5
Uanset hvad jeg prøver for jeg ( syntax error i sql-sætningen )

Skal funktionen dato ikke ændres noget for at det virker?

Function doMysqlDateTime ()
    dtDateTime = Now()
    dtDateTime = DatePart("YYYY", dtDateTime) & "-" & DatePart("M", dtDateTime) & "-" & DatePart("D", dtDateTime) & " " & DatePart("H", dtDateTime) & ":" & DatePart("N", dtDateTime) & ":" & DatePart("S", dtDateTime)

    doMysqlDateTime = dtDateTime
End Function
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:28 #6
Hvilken type er dato kolonnen?
Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 16:33 #7
Dato kolonnen er typen "date"
Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 16:34 #8
Denne fejl meddelses:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '48) AND godkendt = '0'' at line 1
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:36 #9
arh ... min fejl prøv lige bytte rundt på 48 ig HOUR:

Så enten denne:

Conn.execute = "DELETE FROM members where dato <= DATE_SUB('" & doMysqlDateTime() & "', INTERVAL 48 HOUR)  AND godkendt = '0' "

Eller denne:
Conn.execute = "DELETE FROM members where DATE_ADD(dato, INTERVAL 48 HOUR) <= Now()  AND godkendt = '0' "
Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 16:42 #10
Fint, det virker nu
Men hvad er forskellen på de sidste 2 forslag?
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:44 #11
Den føste bruge din funktion som returnere datoen.
Den sidste bruge de inbyggede dato funktion, now(), til at give dags dato.
Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 16:46 #12
Hm, hvad er bedst, er en at foretrække?
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:46 #13
Og den føste bruger DATE_SUB til at regne skille datoen ud. Den anden bruger DATE_ADD og NOW() til at beskemme om der er gået 48 timer.
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:47 #14
tja.. den du syntes bedst om. Jeg tror ikke der er nogen forskel i hastighed.
Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 16:49 #15
okay, og de er måske begge lige præsic og driftsikker?
Avatar billede eagleeye Praktikant
27. februar 2004 - 16:51 #16
Ja det ville jeg mene.
Avatar billede kaptajnknas Nybegynder
27. februar 2004 - 17:30 #17
OK FINT :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester