03. februar 2010 - 21:57Der er
3 kommentarer og 1 løsning
Fejler i sortering af dato yyyy-mm-dd
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
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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 ASC LIMIT 4
ja self ved at skippe %365 ogsaa:
SELECT event_date, DATE_FORMAT( event_date, '%m/%d' ) AS event_date_temp FROM allandk ORDER BY DAYOFYEAR( event_date ) - DAYOFYEAR( NOW( ) ) LIMIT 4
2010-01-31 - DAYOFYEAR(NOW()) = -4 og -4%365 = -4, den mindste af de fire vaerdier, men (2010-01-31 - DAYOFYEAR(NOW()) = 361 hvilket er den stoerste af de fire vaerdier. Din kode sorterer datoerne ifoelge afstanden fra DAYOFYEAR(NOW()) og ikke ifoelge afstanden fra nytaar.
Eller har jeg misforstaaet? Vil du have afstanden fra idag men du var overrasket over at 2100-12-24 laa foer 2010-01-31? Det er fordi du ikke bruger aarstallet i din ORDER BY.
Hvis aarstallet har betydning, saa kan det hele vel simplificeres til:
... ORDER BY event_date
?
Synes godt om
Ny brugerNybegynder
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.