webForumDet fria alternativet

räkna ut ålder

Databaser & SQLur Databashanterare & SQL

4 svar · 684 visningar · startad av tanten

Medlem sedan nov. 20051 596 inlägg
Frågan#1

Tycks aldrig få in detta med år i skallen och får inte till hur jag ska göra med att räkna ut åldern på hästarna.

SELECT stallID, namn, fodd

är grunden till frågan, där fodd innehåller t.ex. 2001-04-12.
Men när det gäller travhästar så räknas åren från 1:a januari även om de fötts i juli.
Borde jag kanske ha en rad för tävlingsålder i tabellen, eller finns svaret i php...
Eller kan man på något sett räkna ut och få ut bägge åldrarna direkt i selecten
använder MySQL5

Medlem sedan okt. 20041 556 inlägg
#2
SELECT stallID, namn, fodd, CAST(DateDiff(now(),fodd)/365.25 AS SIGNED INTEGER) as 'Riktig ålder', CAST(DateDiff(now(),concat(EXTRACT(YEAR FROM fodd),'-01-01'))/365.25 AS SIGNED INTEGER) as Travhästålder

Kanske går att lösa smidigare

Medlem sedan nov. 20051 596 inlägg
#3

Det fungerade väldans bra... Tack så mycket! Sedan gäller det bara för mig att förstå också...
Du har ett as för mycket i koden om någon skulle vilja använda den till något...
Tack igen :-)

Medlem sedan okt. 20041 556 inlägg
#4

Bra, jag dubblade ett "as"!

CAST(34.4531 AS SIGNED INTEGER) konverterar ett decimaltal till ett heltal. (Det brukar räcka att säga att man är 34 år och inte 34,4531 år... ;) )

DATEDIFF(now(),fodd) / 365.25 Räknar ut skillnaden i dagar ifrån födelsedatumet och "nu" och delar det hela med årets alla dagar(+skottår)

CONCAT(fodd,'-01-01',' är', ' den', ' första', ' januari.') Slår bara ihop två eller fler värden

EXTRACT(YEAR FROM '2005-05-24') Drar ut året ifrån ett datumvärde

Medlem sedan nov. 20051 596 inlägg
#5

Nu vet jag inte vad som hänt, för plötsligt så blir alla hästar utom två ett år för gamla. Kan inte heller se något mönster i varför två får rätt ålder. Vad kan ha hänt?

129 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)