Avatar billede supermand69 Nybegynder
01. september 2004 - 22:57 Der er 10 kommentarer og
1 løsning

beregn alder i query

hvordan kan man beregne alder i sin query ud fra et dato felt?

eks.
0000-00-00
Avatar billede supermand69 Nybegynder
01. september 2004 - 23:00 #1
kan det ikke både lade sig gøre at lave den "beregning" i sin where clause og i select??

eks.
SELECT (beregn alder) AS age FROM ...
og
... WHERE (beregn alder)>23
Avatar billede jpvj Nybegynder
01. september 2004 - 23:02 #2
givet dit dato felt med fødselsdatoen hedder birth:

SELECT name, birth, CURDATE(), (YEAR(CURDATE())-YEAR(birth)) - (RIGHT(CURDATE(),5)<RIGHT(birth,5)) AS age
FROM table;
Avatar billede supermand69 Nybegynder
01. september 2004 - 23:05 #3
kan det ikke laves mere simpelt?
Avatar billede supermand69 Nybegynder
01. september 2004 - 23:08 #4
har selv fundet noget her... men kan det ikke gøres endnu mere simpelt??

FLOOR((TO_DAYS(NOW())-TO_DAYS(birth))/365.25) AS age
Avatar billede dsj Nybegynder
02. september 2004 - 00:11 #5
Joda:

SELECT YEAR(SUBTIME(CURDATE(), birth)) AS age FROM...

Bemærk dog, at SUBTIME-funktionen kun virker fra MySQL version 4.1.1
Avatar billede supermand69 Nybegynder
02. september 2004 - 16:24 #6
er der ikke andre muligheder? jeg bruger kun 4.0
Avatar billede dsj Nybegynder
02. september 2004 - 17:04 #7
Ikke på MySQL...
Avatar billede supermand69 Nybegynder
04. september 2004 - 10:20 #8
hmm.. synes ikke rigtig jeg kan få det til at virke?

SELECT name, YEAR(SUBTIME(CURDATE(), birth)) AS age, time FROM $DB.user

den udskriver godt nok mine rækker, men age er ikke noget? :(
Avatar billede dsj Nybegynder
04. september 2004 - 13:24 #9
Prøv og se hvad SUBTIME(CURDATE(), birth)) giver, altså uden YEAR-funktionen...
Avatar billede tjensen Nybegynder
08. maj 2005 - 20:39 #10
Til andre der leger med det, så virker det her også fint:

SELECT Year(NOW())-YEAR(birth) AS alder FROM
Avatar billede horsmark Nybegynder
29. juli 2007 - 11:45 #11
Til alle der kører mysql 5 eller højere

SELECT
  TIMESTAMPDIFF(YEAR, NOW(), mit_datetime_datofelt) * -1 AS iAge
FROM
min_tabel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester