Avatar billede mick Nybegynder
19. juni 2002 - 16:01 Der er 7 kommentarer og
2 løsninger

Sortering efter dato

Jeg har et udtræk fra en database, hvor jeg ønsker at sortere efter et felt indeholdende en dato, på dette format : "dd-mm-yyyy". Feltet har datatypen varchar.

Hvordan får jeg sorteret dette udtræk efter dato? Bruger jeg "ORDRER BY", vil f.eks. 12-12-2000 kommer efter 10-06-2002, selvom sidstnævnte er en nyere dato.
Avatar billede Søren Bech Morsing Praktikant
19. juni 2002 - 16:07 #1
ORDRER BY dato DESC

?
Avatar billede medions Nybegynder
19. juni 2002 - 16:52 #2
strSQL = "SELECT * FROM tblDato ORDER BY datokolonne DESC"

Eller

strSQL = "SELECT * FROM tblDato ORDER BY datokolonne ASC"

//>Rune
Avatar billede mick Nybegynder
19. juni 2002 - 17:20 #3
Jo, men det er jo nettop dette som ikke er går. I og med at datatypen for feltet er VARCHAR, bliver der sorteret efter 1. tegn, derefter efter 2. tegn osv. Der bliver ikke taget hensyn til hele strengen ved sortering.

Derfor vil f.eks. datoerne 12-06-2002, 23-05-2002, 27-06-2001 blive sorteret såden :

27-06-2001
23-05-2002
12-06-2002

Hvis jeg bruger ORDER BY kolonne DESC.
Avatar billede medions Nybegynder
19. juni 2002 - 17:23 #4
Jamen hva' så med at lave det om til et Date felt? ;-)
//>Rune
Avatar billede medions Nybegynder
19. juni 2002 - 17:25 #5
Nu ved jeg ikke hvilken Database du bruger om det er MySQL eller om det er MS SQL Server!

Men prøv lige med dette:

strSQL = "SELECT * FROM tblDato ORDER BY " & FormatDate(dato, "%Y/%m/%d") & " DESC"

//>Rune
Avatar billede medievil Nybegynder
19. juni 2002 - 20:11 #6
"SELECT * FROM tabel ORDER BY id desc"

til at skrive datoen:
response.write "<font>"& rs("dato") %",</font><br>
Avatar billede medievil Nybegynder
19. juni 2002 - 20:13 #7
Ups...

Du skal skrive:
<font><% = rs("dato") %>,</font>
<%
rs.MoveNext
Weed
%>
Jeg ved ikke om det virker !!!
Avatar billede tmceu Praktikant
20. juni 2002 - 04:59 #8
Først og fremmest har du netop lært betydningen af det gamle ordsprog "Man kan ikke både blæse og ha' mel i munden". Du kan ikke forvente at kunne lave korrekte sorteringer på dato, når du har implementeret feltet som et varchar felt.

Hvilken database anvender du ? Man kan måske lave en work-around med CAST/CONVERT. En anden work-around er, at "vende" dit felt, så formatet er YYYY-MM-DD, eks. 2002-06-12, dette vil give dig en korrekt sortering.

Men du burde ændre feltet til et ægte date/time felt.
Avatar billede medions Nybegynder
21. juli 2002 - 15:52 #9
Thx 4 Poinz

//>Rune
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