Avatar billede harlequin Nybegynder
08. oktober 2001 - 11:39 Der er 9 kommentarer og
1 løsning

Dato sotering

jeg har et dato felt i en DB som består af ddmmåååå
problemet er at jeg i en forespørgelse soterer efter dato som giver et forkert resultat, da den ikke sotere på de fire sidste cifre (årstal) først og derefter de to første (måned) og til sidst dd (dage)

nogen der kan hjælpe mig med at lave SQL`en hvis det er muligt ?
08. oktober 2001 - 11:44 #1
Du er nødt til at \'vende\' datoen f.eks. i en forespørgsel:

NyDato: right(Dato;4) & mid(Dato;3;2) & Left(Dato;2)

Herefter kan du sortere efter NyDato

/Thomas
08. oktober 2001 - 11:49 #2
(...fortsat)

Problemet er at du har gemt datoen som en tekst istedet for som dato.
Hvis datatypen var Dato ville det virke automatisk.
I din forespørgsel ville du således også kunne konvertere feltet til datoformat således:

KorrektDato: Dateserial(right(Dato;4); mid(Dato;3;2); Left(Dato;2))

/Thomas
Avatar billede terry Ekspert
08. oktober 2001 - 11:50 #3
Or in a new column in a query:
Format([Dato], \"YYYY-MM-DD\")
08. oktober 2001 - 11:53 #4
How can you do that, when Access doesn\'t recognize the field af a date? 
I have been wrong before, but this one I am pretty sure about ;o)
Avatar billede harlequin Nybegynder
08. oktober 2001 - 12:07 #5
takker for hjælpen
/harlequin
Avatar billede terry Ekspert
08. oktober 2001 - 12:28 #6
Not sure what you mean Thomas.
I can enter directly in SQL VIEW
ORDER BY  Or in a new column in a query:
Format([Dato], \"YYYY-MM-DD\") 

which in design view is the same as Format([Dato];\"yyyy-mm-dd\") and Ascending in the sort and the show checkbox = false.

Access will append Expr1: before the format when you do this in design view, but not if you do it in SQL.

08. oktober 2001 - 12:37 #7
Det var ikke det jeg mente, Terry.
Jeg mente vare, at hvis dato-feltet var af typen Text, så nyttede det ikke at formattere med \"YYYY-MM-DD\", da Access ikke ved at de sidte 4 ciffer er årstal osv.
Du kan kun bruge Format([Dato], \"YYYY-MM-DD\"), hvis [Dato] er af type Date!

Agree?
Avatar billede terry Ekspert
08. oktober 2001 - 13:14 #8
OK Thomas, now I understand you. Well I agree entirely. I also thought about that but as harlequin said it was a date field I just assumed it WAS a date type. But then if it was it wouldnt be necessary to sort.
08. oktober 2001 - 13:16 #9
:o)
Avatar billede skovgaard3 Nybegynder
08. maj 2003 - 00:37 #10
det kan gøres mere elegant.
I enden af sql-sætningen skrives:
"ORDER BY YEAR(dato), MONTH(dato), DAY(dato)"

-Claus
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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

Seneste artiklerRSS
07:52
07:37
07:32
07:02
06:42
12:00
23/10
23/10
23/10
23/10
23/10