|
| Førstkommende dato Fra : KASPER |
Dato : 25-03-01 14:54 |
|
Jeg har en database (mySQL) med en adresseliste (navn, adresse, tlf,
fødselsdato m.v.). Kan man lave et udtræk, der sorterer således den
førstkommende fødselar altid står øverst? Altså sortere efter
fødselsdato i forhold til dags dato?
--
KASPER
| |
Andreas Hjordt (25-03-2001)
| Kommentar Fra : Andreas Hjordt |
Dato : 25-03-01 17:06 |
|
select * from mySQL order by fødselsdato
Håber at det er hvad du søger.
MvH
Andreas Hjordt
"KASPER" <kd42@hotmail.com> wrote in message
news:ZLmv6.166$Tj4.11914@news101.telia.com...
> Jeg har en database (mySQL) med en adresseliste (navn, adresse, tlf,
> fødselsdato m.v.). Kan man lave et udtræk, der sorterer således den
> førstkommende fødselar altid står øverst? Altså sortere efter
> fødselsdato i forhold til dags dato?
>
> --
> KASPER
>
>
| |
Rasmus Ebler Simonse~ (25-03-2001)
| Kommentar Fra : Rasmus Ebler Simonse~ |
Dato : 25-03-01 17:41 |
|
> select * from mySQL order by fødselsdato
Forudsat at du ikke har årstal med i DBen
/rasmus
| |
Ghashûl (25-03-2001)
| Kommentar Fra : Ghashûl |
Dato : 25-03-01 18:13 |
|
On Sun, 25 Mar 2001 18:06:26 +0200, "Andreas Hjordt" <ahj@trition.dk>
wrote:
>select * from mySQL order by fødselsdato
>
>Håber at det er hvad du søger.
Den vil vel bare sortere efter hvornår man har fødselsdag, i forhold
til 1 januar?
--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7two23six29
E-mail: stefan at bruhn dot to
URL: http://ghashul.dk
| |
KASPER (25-03-2001)
| Kommentar Fra : KASPER |
Dato : 25-03-01 21:08 |
|
"Andreas Hjordt" <ahj@trition.dk> wrote in message
news:99l4ub$o02$1@news.inet.tele.dk...
> select * from mySQL order by fødselsdato
>
> Håber at det er hvad du søger.
Nej, det går desværre ikke. Dels er der årstal med (skal beregne
personens alder andet sted), og dels skal der sorteres i forhold til den
aktuelle dato.
Fx. hvis vi har den 25. marts og Jens Jensen er født den 1. april 1971,
så skal han stå øverst, forudsat der ikke er andre fødselsdage i dette
tidsrum. Når vi passerer den 1. april bliver Jens Jensen rykket ned i
bunden.
Jeg er kommet så langt, at det nok bliver nødvendigt at splitte
fødselsdatoen op over flere kolonner i tabellen og behandle dato, måned
og årstal hver for sig. Det jeg var ude efter, var om der fandtes en
dato/tids funktion i php jeg havde overset som kunne hjælpe.
--
KASPER
| |
Glen Kjærulff (25-03-2001)
| Kommentar Fra : Glen Kjærulff |
Dato : 25-03-01 23:20 |
|
>
> Jeg er kommet så langt, at det nok bliver nødvendigt at splitte
> fødselsdatoen op over flere kolonner i tabellen og behandle dato, måned
> og årstal hver for sig. Det jeg var ude efter, var om der fandtes en
> dato/tids funktion i php jeg havde overset som kunne hjælpe.
>
Det er der mktime().
http://dk.php.net/manual/function.mktime.php
den vil konvetere inputtet altså fødselsdato til sekunder siden en bestemt
dato, kan ikke huske hvilken. altså for du et tal ala 97025545 ->
unixtimestamp
det kan man så konvetere til et pænt resultat. med
date()
http://dk.php.net/manual/function.date.php
så kan du bare lave en select * from tabel order by fødselsdag.
osv.
echo date("Y - M - D",$fødelsedag);
Glen K
| |
Mads Lie Jensen (26-03-2001)
| Kommentar Fra : Mads Lie Jensen |
Dato : 26-03-01 10:44 |
|
On Sun, 25 Mar 2001 22:08:08 +0200, "KASPER" <kd42@hotmail.com> wrote:
>Fx. hvis vi har den 25. marts og Jens Jensen er født den 1. april 1971,
>så skal han stå øverst, forudsat der ikke er andre fødselsdage i dette
>tidsrum. Når vi passerer den 1. april bliver Jens Jensen rykket ned i
>bunden.
>
>Jeg er kommet så langt, at det nok bliver nødvendigt at splitte
>fødselsdatoen op over flere kolonner i tabellen og behandle dato, måned
>og årstal hver for sig. Det jeg var ude efter, var om der fandtes en
>dato/tids funktion i php jeg havde overset som kunne hjælpe.
Jeg har en ide om at man kan omregne datoen til dagen i året (1-366).
Hvis dag-nummeret er mindre end i dags nummer, så ligger man 366 til.
I mysql ville det være noget ala
SELECT IF(DAYOFYEAR(fødselsdag) < DAYOFYEAR(NOW()),
DAYOFYEAR(fødselsdag) + 366, DAYOFYEAR(fødselsdag)) AS sortering,
fødselsdag FROM tabel ORDER BY sortering DESC
--
Mads Lie Jensen
Mads@gartneriet.dk
ICQ #25478403
http://www.gartneriet.dk
| |
KASPER (26-03-2001)
| Kommentar Fra : KASPER |
Dato : 26-03-01 22:39 |
|
"Mads Lie Jensen" <mads@gartneriet.dk> wrote in message
news:gc3ubt0891ciplaioe0anvbji554dgslcp@4ax.com...
> Jeg har en ide om at man kan omregne datoen til dagen i året (1-366).
> Hvis dag-nummeret er mindre end i dags nummer, så ligger man 366 til.
>
Tak, det virkede faktisk :)
> I mysql ville det være noget ala
> SELECT IF(DAYOFYEAR(fødselsdag) < DAYOFYEAR(NOW()),
> DAYOFYEAR(fødselsdag) + 366, DAYOFYEAR(fødselsdag)) AS sortering,
> fødselsdag FROM tabel ORDER BY sortering DESC
Helt præcist, ser det sådan ud:
SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC
--
KASPER
| |
Andreas Kleist Svend~ (27-03-2001)
| Kommentar Fra : Andreas Kleist Svend~ |
Dato : 27-03-01 14:38 |
|
On Mon, 26 Mar 2001 23:39:22 +0200, "KASPER" <kd42@hotmail.com> wrote:
>Helt præcist, ser det sådan ud:
>SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
>DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
>postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC
Der er ikke taget højde for år uden skuddag, de år har kun 365 dage
mvh Andreas
| |
Mads Lie Jensen (27-03-2001)
| Kommentar Fra : Mads Lie Jensen |
Dato : 27-03-01 15:14 |
|
On Tue, 27 Mar 2001 13:38:29 GMT, usenetnospam@nau.dk (Andreas Kleist
Svendsen) wrote:
>On Mon, 26 Mar 2001 23:39:22 +0200, "KASPER" <kd42@hotmail.com> wrote:
>
>>Helt præcist, ser det sådan ud:
>>SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
>>DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
>>postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC
>
>Der er ikke taget højde for år uden skuddag, de år har kun 365 dage
Det er jo ligegyldigt.
Om man ligger 365 eller 366 til giver det samme i sorteringen, og det
var det der var meningen.
--
Mads Lie Jensen
Mads@gartneriet.dk
ICQ #25478403
http://www.gartneriet.dk
| |
Andreas Kleist Svend~ (27-03-2001)
| Kommentar Fra : Andreas Kleist Svend~ |
Dato : 27-03-01 16:27 |
|
On Tue, 27 Mar 2001 16:14:05 +0200, Mads Lie Jensen
<mads@gartneriet.dk> wrote:
>Det er jo ligegyldigt.
Du har såmænd ret.
>Om man ligger 365 eller 366 til giver det samme i sorteringen, og det
>var det der var meningen.
Jeg var lige lidt for hurtig, tricket virker præcis som det skal.
mvh Andreas
| |
Christian Schmidt (28-03-2001)
| Kommentar Fra : Christian Schmidt |
Dato : 28-03-01 23:49 |
|
Mads Lie Jensen wrote:
>
> >>SELECT IF ((DAYOFYEAR(foedt) < DAYOFYEAR(CURRENT_DATE)),
> >>DAYOFYEAR(foedt)+366, DAYOFYEAR(foedt)) AS sorting, navn, adresse,
> >>postnr, bynavn, email, www, foedt FROM foed ORDER BY sorting ASC
> >
> >Der er ikke taget højde for år uden skuddag, de år har kun 365 dage
>
> Det er jo ligegyldigt.
> Om man ligger 365 eller 366 til giver det samme i sorteringen, og det
> var det der var meningen.
Til gengæld er DAYOFYEAR('2000-03-01') == DAYOFYEAR('2001-03-02').
Dvs. at man kan risikere, at datoer efter 28. februar ikke er sorteret
helt rigtigt (de kan være forskudt én dag).
Jeg er p.t. for træt til at komme med et bud på en alternativ en løsning
Christian
| |
|
|