Avatar billede kasiwakki Nybegynder
22. august 2001 - 20:07 Der er 9 kommentarer og
3 løsninger

SQL - datoformat mmddyy

Prøver at sortere de fødselsdage der findes i tabellen så næste fødselsdag der kommer, listes øverst, sorteringen skal være mmddyy efter d.d. men udskriften skal være ddmmyy som i tabellen

SELECT Navnetabel.Fødselsdato, [fornavn] & \" \" & [Efternavn] AS Navn
FROM Navnetabel
WHERE (((Navnetabel.Fødselsdato) Is Not Null));

har fået den til at sortere efter år og dag men kan ikke få det efter mdr. ??
Hvordan gør jeg det??
Avatar billede terry Ekspert
22. august 2001 - 20:41 #1
If I understand you correctly you want to show those in August (08) before those in other months?
That would also mean that those in December (12) would come before those in January (01)
Is this correct?
Avatar billede kasiwakki Nybegynder
22. august 2001 - 21:09 #2
korrekt
25-08-67
12-12-88
21-08-77
Avatar billede nih Novice
22. august 2001 - 21:59 #3
Den simple er at dele datoen op i flere felter i enten grundtabellen eller udlede dag,måned og år i en forespørgsel

fldDag: format([Fødselsdato];\"dd\")
fldMnd: format([Fødselsdato];\"mm\")
fldAar: format([Fødselsdato];\"åå\")  (\"yy\") i engelsk udgave

Tilføj disse tre linjer i forespørgsels gitteret i hver deres felt, og sorter som du plejer.

Niels
Avatar billede terry Ekspert
22. august 2001 - 22:15 #4
Niels in the example we want to get August as the first month and january as the last!!!

This may seem rather compex but try it!

SELECT Fødselsdato, IIf(DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())<0,DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now()),DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())+-1000) AS DaysTo
FROM Navnetabel
ORDER BY IIf(DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())<0,DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now()),DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())+-1000) DESC;

Avatar billede jens-peter Nybegynder
22. august 2001 - 22:18 #5
Her er et forslag, som ser lidt simplere ud, og hvis jeg forstår spørgsmålet ret, løser det dit problem.

SELECT [Fornavn] & \" \" & [Efternavn] AS Navn, Navnetabel.Fødselsdato
FROM Navnetabel
ORDER BY DateDiff(\"d\",DateSerial(Year(Now()),Month([Fødselsdato]),Day([Fødselsdato])),Now());

mvh/Jens-Peter
Avatar billede terry Ekspert
22. august 2001 - 22:20 #6
This example calculates the number of days from the day and month of th ebirthday until the current day (now())
Problem is that it could be +1 or -1! So I add -1000 just to ensure that the + days (those past) come after the - days (those coming up).

Could maybe make it a little short but for 30 points!
Avatar billede kasiwakki Nybegynder
22. august 2001 - 22:20 #7
det virker men kunne godt tænke mig en SQL på dette...
hæver gerne points for en komplet SQL...
Avatar billede kasiwakki Nybegynder
22. august 2001 - 22:26 #8
Unskyld... fik ikke opdateret efter <nih>
Avatar billede terry Ekspert
22. august 2001 - 22:26 #9
sorry what works?
Avatar billede terry Ekspert
22. august 2001 - 22:31 #10
SELECT Fødselsdato, [fornavn] & \" \" & [Efternavn] AS Navn FROM Navnetabel
ORDER BY IIf(DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())<0,DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now()),DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())+-1000) DESC;
Avatar billede terry Ekspert
22. august 2001 - 22:32 #11
a little short too!
Avatar billede kasiwakki Nybegynder
22. august 2001 - 23:45 #12
Dette var koden der fik det til at spille
Takker mange gange

SELECT Navnetabel.Fornavn & \" \" &  Navnetabel.Efternavn AS Navn, Navnetabel.Fødselsdato
FROM Navnetabel
WHERE (((Navnetabel.Fødselsdato) Is Not Null))
ORDER BY IIf(DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())<0,DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now()),DateDiff(\"d\",DatePart(\"d\",[Fødselsdato]) & \"-\" & DatePart(\"m\",[Fødselsdato]),Now())+-1000) DESC;
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