Avatar billede canedo Nybegynder
25. oktober 2002 - 18:14 Der er 35 kommentarer og
1 løsning

Find nyeste opdatering

Jeg har et problem. Jeg vil lave en liste ved brug af TOP 5 i SQL, som viser de 5 poster der sidst er blevet opdateret. I tabellen (Access) har jeg en kolonne som jeg kalder "Opdateret" og som består af en masse datoer: 10-10-2002 og 21-02-2002, og hver gang jeg opdaterer et felt via en admindel på webben så ændres datoen automatisk i databasen.

Nu er det bare sådan at når jeg beder om at få sorteret efter nyeste dato så kommer 25-09-2002 før 10-10-2002, fordi den regner efter det første tal. Hvordan løser jeg det problem på den nemmeste måde?
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:19 #1
Måske hører spørgsmålet mere under Access? Det bliver sandsynligvis noget med at ændre feltet i designvisning, men er ikke sikker på hvordan jeg gør, når feltet skal ændres hver gang der bliver opdateret...
Avatar billede dr-data Nybegynder
25. oktober 2002 - 18:19 #2
er det et dato/klokkeslet -felt i databasen ???
- eller bare standard tekst felt ?
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:21 #3
det er bare et standart tekstfelt i øjeblikket.
Avatar billede dr-data Nybegynder
25. oktober 2002 - 18:22 #4
lav det om til datofelt, da den ellers sorterer alfabetisk.......
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:23 #5
Også når det er via en SQL streng? jeg skal jo tilføje datoer via en ADMIN del på webben senere, - kan der så ikke opstå komplikationer?
Avatar billede dr-data Nybegynder
25. oktober 2002 - 18:24 #6
jo, du skal udskifte dine ' til # i dine sql's når du roder med at dato/tid felt :-)
Avatar billede dr-data Nybegynder
25. oktober 2002 - 18:25 #7
fx. "SELECT * FROM tbl WHERE dato=#01-01-2002# ORDER BY dato"
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:26 #8
2 sek.
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:27 #9
Sådan ser mit SQL ud i øjeblikket:
SELECT TOP 5 Navn, Opdateret, Id FROM Liste ORDER BY Opdateret DESC;
Avatar billede dr-data Nybegynder
25. oktober 2002 - 18:29 #10
k, det burde virke.... det er bare fordi at der bruges ' ved tekst tilføjelse/rettelse og # ved dato/tid tilføjelse/rettelse...
Avatar billede dr-data Nybegynder
25. oktober 2002 - 18:29 #11
dvs. det vil være i dit admin interface du skal have rettet noget....
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:32 #12
kan jeg ikke skrive noget i min standart værdi i databasen, f.eks. ved jeg man kan oprette en automatisk dato for oprettelse, ved at tilføje =Now()
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:34 #13
tester lige og vender tilbage
Avatar billede canedo Nybegynder
25. oktober 2002 - 18:59 #14
Nogen der ved hvad man kan skrive istedet for =Now(), når datoen skal ændres, hver gang der ændres i recordsættet et eller andet sted?
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:01 #15
hvad tænker du på ?
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:02 #16
nå?
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:03 #17
Sql = "UPDATE tabel WHERE id=" & 0 & " SET dato=now" eller noget i den stil
Avatar billede canedo Nybegynder
25. oktober 2002 - 19:04 #18
Normalt så kan man skrive =Now() som standart værdi i designvisning, og så kan man se hvornår feltet er blevet oprettet. Kan man også lave en kode som ændrer datoen hver gang der bliver rettet i recordsættet?
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:05 #19
tror det ikke....
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:05 #20
bare lav det vha. asp....
Avatar billede canedo Nybegynder
25. oktober 2002 - 19:07 #21
Jeg har netop lavet det om til et dato felt, men så skal jeg jo også sikre mig, at de data der puttes i databasen svarer til samme format, skal jeg ikke?
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:10 #22
jo....
Avatar billede canedo Nybegynder
25. oktober 2002 - 19:11 #23
kan =now() i asp give samme format som i databasen, - som giver: 11-10-2002 11:47:58?
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:13 #24
fra http://www.eksperten.dk/spm/77174

dd = day(date())
mm = month(date())
yy = year(date())
today = yy & \"-\" & mm & \"-\" & dd

Den modsatte vej bliver
dato = rs(\"dato\")
dd = day(dato)
mm = month(dato)
yy = year(dato)
dato = dd & \"-\" & mm & \"-\" & yy
Avatar billede canedo Nybegynder
25. oktober 2002 - 19:13 #25
hmm.. jeg tror jeg er ved at forstå... 2 sekunder, vil lige teste igennem.
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:13 #26
fint
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:14 #27
bare fjern \
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:15 #28
om du til databasen skriver: 11-10-2002 eller 11-10-02 er ligemeget....
Avatar billede canedo Nybegynder
25. oktober 2002 - 19:22 #29
Jeg har netop ændret det til langt datoformat (23-09-02 19:21:36), men asp'en vil ikke finde de 5 nyeste alligevel. Sådan ser min SQL ud:
SELECT TOP 5 Navn, Opdateret, Id FROM Liste ORDER BY Opdateret DESC;
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:23 #30
evt.

dato = rs("dato")
dd = day(dato)
mm = month(dato)
yy = year(dato)
dato = dd & "-" & mm & "-" & yy
datoogtid = dato & " " & time
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:23 #31
vil ligne now()
Avatar billede canedo Nybegynder
25. oktober 2002 - 19:25 #32
OKI... havde ikke nok poster. tak for hjælpen
Avatar billede canedo Nybegynder
25. oktober 2002 - 19:25 #33
okay - jeg kan ikke lige give points lige nu, pg.e exp.dk problemer, men vender tilbage :-)
Avatar billede dr-data Nybegynder
25. oktober 2002 - 19:31 #34
jaja fint nok
Avatar billede canedo Nybegynder
28. oktober 2002 - 10:30 #35
dr-data > du må hellere ligge et svar :-)
Avatar billede dr-data Nybegynder
29. oktober 2002 - 00:08 #36
nå ja.... ;-P
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