Jag måste kasta ut en fråga eftersom jag inte hittar lösningen själv. Hej!! *Rysser* Hej Andreas!! Borde inte: ORDER BY CONVERT (char(10), Datum, 112 ), ArtikelnrDATUMKONVERTERING
Jag har ett datum i SQL-databasen i formen 'YY-MM-DD HH:MM:SS'
Detta vill jag konvertera till enbart "YY-MM-DD"
Om jag gör följande SELECT-sats så får jag en galen sortering
"SELECT Artikelnr, Datum FROM DB ORDER BY Datum, Artikelnr"
Eftersom varje Datum är unikt i.o.m. att klockslaget ligger med så sorteras inte Artikelnr.
Hur löser jag detta?Sv: DATUMKONVERTERING
Detta kanske inte är den snyggaste och smartaste lösningen, men det funkar.....
order by CAST(DATEPART(yyyy, Datum)as char(4)) + '-' + Cast(DATEPART(mm, Datum)as varchar(2)) + '-' + Cast(DATEPART(dd, Datum) as varchar(2)), Artikelnr
/TommieSv: DATUMKONVERTERING
Eftersom detta värde inte ska visas så kan man ju skipa det onödiga konvertering till sträng och sammanslagning:
ORDER BY DATEPART(yyyy, Datum), DATEPART(mm, Datum), DATEPART(dd, Datum), Artikelnr
Annars är det nog effektivare att göra det med ett anrop:
ORDER BY CONVERT (char(6), Datum, 112 ), Artikelnr
Ett tal borde ju vara snabbare att sortera än en sträng.
Vet inte om man kan göra det till Int, vilket borde ta minst resurser att sortera:
ORDER BY CONVERT (Int, Datum, 112 ), Artikelnr
Eller åtminstonde datetime:
ORDER BY CONVERT (datetime, Datum, 112 ), Artikelnr
Har ingen möjlighet att testa just nu.Sv: DATUMKONVERTERING
Håller som sagt med om att det inte var så snyggt!!!! Men jag klippte ut kod som jag använt för visning! Skall bättra mig, men jag ville ge ett snabbt svar till Curt. ;-)
ORDER BY CONVERT (char(6), Datum, 112 ), Artikelnr
funkar utmärkt, om man ändrar char(6) till char(8). Annars kommer inte dagen med.
ORDER BY CONVERT (Int, Datum, 112 ), Artikelnr
funkade för mig på min server. Borde vara det bästa ur resurshänseende..
ORDER BY CONVERT (datetime, Datum, 112 )
funkar inte alls eftersom kolumnen redan är datetime och han inte ville ha med tiden!!
(convert datetime -> datetime)
/Tommie JSv: DATUMKONVERTERING
ORDER BY TO_CHAR(Datum,'YYYY-MM-DD')
fungera?
Gör de med Oracle iafSv: DATUMKONVERTERING
gick alldeles utmärkt!!
(char(10) p.g.a. att formatet var 'YYYY-MM-DD', alltså 10 tecken.)
Tack för all hjälp.