Avatar billede danq Nybegynder
29. august 2003 - 09:04 Der er 20 kommentarer og
1 løsning

eagleeye det virkede ikke

jeg fik hjælp af eagleeye i følgende spørgsmål:
http://www.eksperten.dk/spm/394017
jeg troede at det virkede men fandt ud af at den bare hev alle brugere frem.. Kan det laves på en anden måde? huske på at jeg ikke kan bruge TIMEDIFF eller DATEDIFF...
mvh dan
Avatar billede eagleeye Praktikant
29. august 2003 - 09:17 #1
I hvilket format ligger du datoen i databasen?
Avatar billede eagleeye Praktikant
29. august 2003 - 09:21 #2
Hvis du ikke gemmer det i formetet yyyy-mm-dd hh:nn:ss så virker det ikke som jeg også skrev da den ud fra kolonnen ved det er en teskt kolonne og derfor behander den sådan.

Det ville være at lave det til en TIMESTAMP kolonnne da så automatisk ved det er dato/tid den sammenligner. Men konvertere du til TIMESTAMP og formatet på forhånd ikke er yyyy-mm-dd ... så kan den ikke lave dem rigtigt om.
Avatar billede danq Nybegynder
29. august 2003 - 15:39 #3
dd-mm-yyyy hh:nn:ss <-- sådan ser min dato ud.
Avatar billede eagleeye Praktikant
29. august 2003 - 15:46 #4
Det bedste ville være hvis du kunne lave det om til yyyy-mm-dd hh:nn:ss


og så rette ASP koden fra i går til dette:


dato = DateAdd("n",-10,now)
dato = Year(dato) & "-" & Right("0" & Month(dato),2) & "-" & Right("0" & Day(dato),2) & " "
dato = dato & Right("0" & Hour(dato),2) & ":" & Right("0" & Minute(dato),2) & ":" & Right("0" & Second(dato),2)

SQL = "SELECT * FROM tabelnavn WHERE lastmove >= '" &dato & "'"


Alternativt skal man lave som i SQL kommer lige med et eks.
Avatar billede danq Nybegynder
29. august 2003 - 15:49 #5
hmm når jeg opdaterer feltet lastmove bruger jeg jo bare Now().. den sætter det selv som dd-mm-yyyy hh:nn:ss
Avatar billede eagleeye Praktikant
29. august 2003 - 15:51 #6
Ok prøv med dette dog stadig ret så ASP koden bliver som vist før og her igen:
det som der forhåbenligt sker er at  dd-mm-yyyy hh:nn:ss  bliver til yyyy-mmm-dd hh:nn:ss

dato = DateAdd("n",-10,now)
dato = Year(dato) & "-" & Month(dato) & "-" & Day(dato) & " "
dato = dato & Hour(dato) & ":" & Minute(dato) & ":" & Second(dato)

SQL = "SELECT * FROM tabelnavn WHERE CONCAT(SUBSTRING(lastmove,7,4),'-',SUBSTRING(lastmove,4,2),'-',SUBSTRING(lastmove,1,2),' ',SUBSTRING(lastmove,12,8)) >= '" & dato & "'"




Det er vigtig der står 0 hvis eksvis månede er august sådan her 08 og ikke kun 8 i tabellen.
Avatar billede eagleeye Praktikant
29. august 2003 - 15:53 #7
Ja det nok fordi du bruger ASP's now og ikke mySQL's now() ser den ikke sådan her ud :
"INSERT INTO (lastmove) VALUES('" & now & "')"
Avatar billede danq Nybegynder
29. august 2003 - 15:54 #8
ok så du siger at jeg skal prøve med den første kode og så skal jeg prøve at bruge mysql's now function istedet for asp's?
Avatar billede danq Nybegynder
29. august 2003 - 15:55 #9
Conn.Execute("update bruger set lastmove = '" & Now() & "' where brugernavn = '" & session("brugernavn") & "'") <- sådan ser min execute streng ud
Avatar billede danq Nybegynder
29. august 2003 - 15:57 #10
men det indlæg du kom med kl. 15:46:39 ser ud til at virke.. er det ikke fint nok?
Avatar billede eagleeye Praktikant
29. august 2003 - 15:59 #11
Jo det ville måske enda være bedst så skal du ikke rette i andet kode.
Avatar billede danq Nybegynder
29. august 2003 - 16:01 #12
ok takker for det.. overrækker hermed point...
Avatar billede danq Nybegynder
29. august 2003 - 16:01 #13
hvis jeg ellers havde et svar.. *G*
Avatar billede eagleeye Praktikant
29. august 2003 - 16:08 #14
Jamen jeg fik jo også i går?
Avatar billede danq Nybegynder
29. august 2003 - 16:12 #15
arg... jeg tog fejl.. det virkede ikke.. den gør bare det samme som først. .den skriver at alle brugere er online..!
Avatar billede eagleeye Praktikant
29. august 2003 - 16:21 #16
Så prøv denne SQL


SQL = "SELECT * FROM tabelnavn WHERE DATE_ADD(CONCAT(SUBSTRING(lastmove,7,4),'-',SUBSTRING(lastmove,4,2),'-',SUBSTRING(lastmove,1,2),' ',SUBSTRING(lastmove,12,8)), MINUTE, 10) >= now()"
Avatar billede danq Nybegynder
29. august 2003 - 16:25 #17
får fejlen:
[TCX][MyODBC]You have an error in your SQL syntax near 'MINUTE, 10) >= now()' at line 1
Avatar billede eagleeye Praktikant
29. august 2003 - 16:30 #18
Prøv:

SQL = "SELECT * FROM tabelnavn WHERE DATE_ADD(CONCAT(SUBSTRING(lastmove,7,4),'-',SUBSTRING(lastmove,4,2),'-',SUBSTRING(lastmove,1,2),' ',SUBSTRING(lastmove,12,8)), INTERVAL 10 MINUTE) >= NOW()"
Avatar billede danq Nybegynder
29. august 2003 - 16:32 #19
oki det var bedre. nu ser det ud til at virke. men giver det alligevel lige 10 min før jeg svarer på om det virker eller ej.. takker endnu en gang.. eagleeye you are the god of mysql
Avatar billede danq Nybegynder
29. august 2003 - 16:35 #20
det virker fandme.. damn det er nice... takker takker takker takker takker takker takker takker takker
Avatar billede eagleeye Praktikant
29. august 2003 - 16:35 #21
Ja den skal lige prøves:

De har også en rigtig god hjemme side:
http://www.mysql.com/doc/en/Functions.html
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