mboost-dp1
PHP og mysql resultater sorteret BÅDE asc og desc.
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Hejsa
Jeg har en tabel der indeholder dato i formatet YYYYMMDD og tid i HH:MM:SS
Disse skal jeg have ud og sorteret så den først sortere efter dato, derefter tid.
Det er for sig ikke noget problem, så længe jeg kan nøjes med at sortere i enten ASC eller DESC.
Sorterer jeg i DESC, står nyeste dato først, men sidste klokkeslet også,
så det passer ikke godt overens når man skifter til næste dag på en lang kolonne.
Sorterer jeg i ASC, så står alt korrekt, dog er nyeste hits sidst i queryen...
Hvordan sorterer jeg dato desc og tid asc i samme query?
Min query ser pt sådan ud:
Jeg har en tabel der indeholder dato i formatet YYYYMMDD og tid i HH:MM:SS
Disse skal jeg have ud og sorteret så den først sortere efter dato, derefter tid.
Det er for sig ikke noget problem, så længe jeg kan nøjes med at sortere i enten ASC eller DESC.
Sorterer jeg i DESC, står nyeste dato først, men sidste klokkeslet også,
så det passer ikke godt overens når man skifter til næste dag på en lang kolonne.
Sorterer jeg i ASC, så står alt korrekt, dog er nyeste hits sidst i queryen...
Hvordan sorterer jeg dato desc og tid asc i samme query?
Min query ser pt sådan ud:
mysql_query("select * from portalevents order by dato, tid DESC")
Fordi det bliver hentet fra txt filer, og ikke udelukkende mig der har stået bag det.
en linie ser som udgangspunkt sådan ud:
Og den bliver så choppet op og smidt i diverse felter i tabellen.
Og den bliver udlæst på døgn basis.
en linie ser som udgangspunkt sådan ud:
May 28 12:27:51 192.168.15.200 logportalauth[18513]: FAILURE: 108433, 00:03:47:e8:36:d6, 192.168.0.90
Og den bliver så choppet op og smidt i diverse felter i tabellen.
Og den bliver udlæst på døgn basis.
Hvis du skal sortere forskellige på dato og tid kan man vel ikke nøjes med at gemme det i et felt? - Så er det jo netop den nyeste dato men også den seneste tid der kommer øverst.
Som jeg har forstået det vil du sortere det så den nyeste dato kommer op, men under den er det så samtidig den ældste tid, den dag - Right?
Som jeg har forstået det vil du sortere det så den nyeste dato kommer op, men under den er det så samtidig den ældste tid, den dag - Right?
#10,
Nårh jamen så er der ikke noget i vejen for at du kan putte det hele i eet felt.
Personligt gemmer jeg altid unix timestamps i et int felt da det er nemmest at arbejde med uden at skulle tage højde for alt muligt.
Så jeg vil anbefale dig at du bare kører en strtotime() på hele din dato og så putter det i et int felt i db'en, så kan du bare sortere på det DESC og vupti du har samme struktur, men kun et enkelt felt.
et date felt som Windcape foreslår vil naturligvis også virke, men jeg foretrækker bare den her mere simple måde at gøre det på :)
Nårh jamen så er der ikke noget i vejen for at du kan putte det hele i eet felt.
Personligt gemmer jeg altid unix timestamps i et int felt da det er nemmest at arbejde med uden at skulle tage højde for alt muligt.
Så jeg vil anbefale dig at du bare kører en strtotime() på hele din dato og så putter det i et int felt i db'en, så kan du bare sortere på det DESC og vupti du har samme struktur, men kun et enkelt felt.
et date felt som Windcape foreslår vil naturligvis også virke, men jeg foretrækker bare den her mere simple måde at gøre det på :)
#div
Et DATE felt virker ikke i MySQL, da det kun kan have dato delen og ikke tids delen.
I MySQL skal man bruge DATETIME for at få både dato og tids del.
En INT eller TIMESTAMP (i nyere MySQL hvor man kan disable den automatiske opdatering) med *nix tid kan også bruges.
Men bemærk at de har lidt forskellig semantik omkring skift til og fra sommertid og forskellige tidszoner.
Givet de viste data vil kun DATETIME kunne gemme data som de er.
Et DATE felt virker ikke i MySQL, da det kun kan have dato delen og ikke tids delen.
I MySQL skal man bruge DATETIME for at få både dato og tids del.
En INT eller TIMESTAMP (i nyere MySQL hvor man kan disable den automatiske opdatering) med *nix tid kan også bruges.
Men bemærk at de har lidt forskellig semantik omkring skift til og fra sommertid og forskellige tidszoner.
Givet de viste data vil kun DATETIME kunne gemme data som de er.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.