MadoorMedlem sedan sep. 200234 inlägg Jag har suttit och funderat ett tag nu, men kommer inte på hur jag ska göra min sql-sats (eller resten av koden som behövs).
Jag vill lista alla olika månader som finns i en databas och datumformatet i databasen är fäljande: "dag/månad-år timmar:sec".
Det är blir inte så svårt att lista alla poster från en viss månad från ett visst år! Men att lista alla olika månader från olika år, där poster finns sparade, blir svårare! Någon som har något förslag på hur jag kan göra?
jag vill alltså att det ska se ut såhär:
Augusti - 2003
Juli - 2003
(Juni skrivs inte ut eftersom det inte finns några poster sparade från juni)
Maj - 2003
LarsGMedlem sedan dec. 200012 464 inlägg Vilken databashanterare använder du?
Vilken datatyp har kolumnen där datumet lagras? Formatet är bara intressant om det inte är en date-datatyp eftersom alla date-värden lagras i samma format. (Och det ser inte ut som du har beskrivit.)
MadoorMedlem sedan sep. 200234 inlägg jag använder MySQL och formatet för datumkolumnen är: varchar(30)
Men jag kom på en ganska bra sak annars. Skulle man inte kunna lägga in en ny kolumn där man skriver "månad - år". Sen tar man sql = select distinct datum from news...
vad tror ni om det sista förslaget?
LarsGMedlem sedan dec. 200012 464 inlägg Jag tycker att det är bättre att byta till typen date.
då kan man använda
select distinct month(dateColumn) , year(dateColumn) ...
Att dubbellagra data är (nästan) aldrig bra.
aasahMedlem sedan mars 20034 471 inlägg
Madoor skrev:
... Men jag kom på en ganska bra sak annars. Skulle man inte kunna lägga in en ny kolumn där man skriver "månad - år". Sen tar man sql = select distinct datum from news... vad tror ni om det sista förslaget?
Det är säkert jag som missar något men jag begriper inte vad du menar... Om din nya kolumn heter datum, så får du ju bara ut denna kolumn och varje olikt värde EN gång. Men du skrev ju ovan att du ville ha ut alla poster? :q
Dessutom, jag tycker att det låter som att problemet beror på att ditt datum i databasen står på fel form i förhållande till hur du vill att din utskrift ska se ut? I så fall har du väl två alternativ:
* Ändra formatet i databasen så att fältet (det ursprungliga) är av typen date. (Eller ser ut som du vill ha det.)
* Plocka ut de värden som finns i databasen sådana de ser ut och fixa utskriften i applikationen.
Jag ser inte tillägget av en kolumn med redundant info som en tillgång. Vad hindrar dig från att knappa in:
2/6-2003 00:19 [i]< andra kolumner >[/i] juli - 2003 ?
Nu får du olika resultat beroende på vilken datum kolumn du söker på... Det är lättare att skriva fel än man tror... tyvärr.
MadoorMedlem sedan sep. 200234 inlägg Det jag menar är att jag vill lista alla månader som det finns poster sparade i. Tex om det finns 10 poster sparade i augusti, 2 poster sparade i juli, ingen post sparad i juni och en post sparad i maj. Då vill jag lista alla månader som det finns poster sparade i och det skulle i detta fall se ut så här:
Augusti
Juli
Maj