Avatar billede allandk Nybegynder
22. november 2007 - 21:29 Der er 10 kommentarer og
1 løsning

Vælge næste tre dato STØRRE END/LIG i dag OGSÅ henover årsskifte?

Jeg vil gerne hive de næste 3 fødselsdage ud ad tabellen og bruger:

SELECT *, DATE_FORMAT(user_birthday, '%d/%m') AS date
FROM $table_auth
WHERE DAYOFYEAR(user_birthday) >= DAYOFYEAR(NOW())
ORDER BY DAYOFYEAR(user_birthday)-DAYOFYEAR(NOW())
ASC
LIMIT 3

I øjeblikket er der kun én post tilbage for i år og det resulterer så i én dato. Hvad kan jeg ændre for at at hente 3 som ønsket?
Avatar billede arne_v Ekspert
22. november 2007 - 21:36 #1
Prøv:

SELECT *,DATE_FORMAT(user_birthday, '%d/%m') AS date
FROM $table_auth
ORDER BY (DAYOFYEAR(user_birthday)-DAYOFYEAR(NOW())+365)%365
LIMIT 3;
Avatar billede allandk Nybegynder
22. november 2007 - 21:47 #2
Perfekt. Lige i øjet. Mange tak.

Svarer du lige?
Avatar billede arne_v Ekspert
22. november 2007 - 21:48 #3
kommer her
Avatar billede allandk Nybegynder
22. november 2007 - 21:49 #4
Egentlig forstår jeg ikke, hvorfor den virker - bør der ikke netop være en WHERE-klausul?
Avatar billede arne_v Ekspert
22. november 2007 - 21:58 #5
LIMIT 3 klarer hele række udvælgelse
Avatar billede allandk Nybegynder
03. februar 2010 - 12:39 #6
Hej arne_v - er du her endnu?

Jeg skriver:

SELECT event_date,DATE_FORMAT(event_date, '%m/%d') AS event_date_temp
FROM wishlist_events_reminder
ORDER BY (DAYOFYEAR(event_date)-DAYOFYEAR(NOW())+365)%365 ASC
LIMIT 4


Jeg får:

2010-04-04 -> 04/04
2010-07-26 -> 07/26
2100-12-24 -> 12/24 HOVSADASSE!
2010-01-31 -> 01/31
Avatar billede arne_v Ekspert
05. februar 2010 - 03:38 #7
Opgaven er her at finde næste fødselsdage.

4. april
26. juli
24. december
31. januar

ser korrekt ud når datoen er 3. februar.

Men jeg kan se at du har stillet et spørgsmål og fået noget svar fra Christian, så jeg regner med sagen er klaret.
Avatar billede allandk Nybegynder
05. februar 2010 - 15:42 #8
Hej arne_v. Ja, jeg kom videre med Christians svar. Tak for kommentaren.
Avatar billede arne_v Ekspert
05. februar 2010 - 18:41 #9
SQL'en er vist ioevrigt ikke helt god.

Brugen af 365 maa kunne give problemer i forbindelse med skudaar.
Avatar billede allandk Nybegynder
05. februar 2010 - 22:08 #10
Det gør den også. Har du en idé i ærmet? I Christians forslag er både +365 og %365 fjernet.
Avatar billede arne_v Ekspert
14. februar 2010 - 03:37 #11
Bare brug 366.

Men så vidt jeg forstod i det andet spørgsmål, så har du ikke brug for det som den beregning laver.
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
Computerworld tilbyder specialiserede kurser i database-management

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