21. marts 2000 - 15:20Der er
6 kommentarer og 1 løsning
ORDER BY spørgsmål
Jeg har denne SQL sætning: SELECT * FROM intouch WHERE Status = ''Hjemme'' ORDER BY udloeb
udloeb er en kolonne som datoer i formatet dd-mm-åå !
Når jeg laver min SELECT, så sorterer den dem også, men den sorterer dem efter dd og kigger ikke på resten. Kan man ikke få den til at kigge på hele datoen, sådan så 16-02-01 kommer før 15-05-00 ???
er det felt i databasen du kalder Udloeb en string eller et date felt ?
For at du kan sortere korrekt på datoen skal feltet enten være et datefelt, eller også skal du i string-feltet gemme datoerne i "amerikansk" format, d.v.s. åå-mm-dd
Hvis det er en paradoxdb kan du forholdsvis let ændre feltet fra string til date uden at miste indholdet, forudsat at de records der allerede findes i registret indeholden en valid dato i den form du beskriver (dd-mm-åå). Dette kræver dog at du dels har sat datoformatet i Kontrol panel, regionale/internationale til det danske format, og du dels samtidig har defineret årstallet til kun at være 2 tegn.
Samtidig skal Date-format i BDE-admin være sat til det samme. Hvis dette ikke er tilfældet er det nødvendigt at fremstille et lille konverteringsprogram der kan håndtere konverteringen af dato-felt indholdet for alle records i tabellen.
Jeg tror du kan gøre det samme med en Access, men da jeg er vant til paradox ved jeg ikke lige hvordan du kan ændre et felts type uden at miste dataene i det. Evt. kan du jo exportere alle data, rette databasen og så importere dem igen. Så længe datoen står i et korrekt format bør Access automatisk konvertere til date-formatet.
Problemet er jo at sortering på et text (string) felt foregår ved først at se på første tegn og sætte linierne iht. det, og for de der har samme første tegn kigges på det næste, og igen det næste. o.s.v.
Du kan derfor ikke bruge det danske dato-format i et textfelt til at sortere efter. Der skal datoerne være i amerikansk format, med ååmmdd, hvor en given dato altid er større (som tal/text) end de foregående dage/måneder/år og altid mindre end datoer efter.
En anden mulighed er som nævnt at lave et konverteringsprogram der "vender" teksten til det amerikanske format, så vil sorteringen virke, men alle de steder du bruger datoen skal du så tage højde for dette "omvendte" format.
Derfor er det bedste at gemme datoen i et Date-felt. Dermed vil du også kunne være ligeglad med om året er gemt med 2 eller 4 cifre. Når en dato vises er det alligevel de nationale indstillinger i Kontrol Panelet der afgør hvordan datoen skal fremstå.
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.