Sortering efter dato er underlig!

Tags:    databaser

Hejsa

Jeg har følgende kommando til at hente mine data, og sortere dem efter dato med nyeste øverst:

mysql_query("SELECT id, title, manchet, body, date_format(date, '%e/%c-%Y') as date FROM news order by date desc LIMIT 5");

Det virker fint, på den måde at det nyeste datomæssigt kommer øverst. Men emner fra samme dag (dvs. tidsmæssigt) er ikke sorteret sådan. Hvordan rettes dette?

På forhånd tak!

Mvh
Gunnar Kristiansen



Hej

Istedet for at sortere efter dato, kunne du sortere efter id, da id'et burde have den rigtige rækkefølge.

mysql_query("SELECT id, title, manchet, body, date_format(date, '%e/%c-%Y') as date FROM news order by id desc LIMIT 5");

---
Hilsen Anders

[Redigeret d. 14/03-04 09:20:16 af Anders (r0x3r)]



Så har jeg bare et problem, hvis jeg får brug for at opdatere en nyhed, hvilket bringer mig frem til en anden lille ting:

Hvordan ændrer man en automatisk sat TIMESTAMP ved f.eks. ønsket om at opdatere sin nyhed...?

Kan man ændre ID'et, og derved løse problemet?


Mvh
Gunnar



Slet ingen bud???

Mvh
Gunnar



Du kunne indsætte en ny række i bunden af tabelen med den normale insert, der så indeholder det samme som den gamle række. Hvorefter du så sletter din gamle række...

---
Hilsen Anders



Som jeg lige læser din kode: Du sorterer på dato kolonnen, men det dato format du bruger indeholder ikke alt det du vil sortere på!

Hvis du vil opdatere et timestamp felt i din database med et nyt er det som at opdatere alt muligt andet, du skal opdatere, med et format der overholder din constraint. DVS. Skal du opdatere et timestamp felt, så kig i databasen og se hvordan det er formatteret og lav et tilsvarende og indsæt det. Hvis du har et automatisk timestamp på denne kolonne burde den ikke blive triggeret af en update, ellers fjerner du den bare og bygger din egen rutine til at indsætte datoen

(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Det sjove er bare, at prøver jeg med PhpMyAdmin at gøre det (i det korrekte og samme format), så bliver resutatet = ingenting!

Mvh
Gunnar



Det er ikke sikkert at phpmyAdmin formatterer korrekt, mener at mysql selv kan håndtere det hvis du indsætter i dette format mm/dd/yyyy, så konverterer den vist selv til det korrekte format

(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Den sikreste måde at sortere efter dato er ved at vælge år, måned, dato ligesom det engelske datoformat, da du derved kan få et tal, som du kan sortere på.

Det største tal vil altid være det nyeste.

Fx.

1. januar 2007 vil blive til:

20070101

7. januar 2007 vil blive til:

20070107

Derfor kan du allerede ved brug af datetime i din tabel sortere dine data, når du laver udtræk fra SQL.

Mvh

Sol



Indlæg senest redigeret d. 18.01.2007 07:39 af Bruger #5297
t