[MySql] DATE() en Leeftijd
Ik zit wat te knutselen met het berekenen van leeftijd.
Zoekende naar iets, waar ik vaag wel van weet dat het kan maar niet meer precies hoe. Zal het even uitleggen:
Ik heb in mijn database een veld staan waar een geboortedatum staat. Deze heeft als type; date.
Nu wil ik het liefst de leeftijd berekenen in een query.
Dit is wat ik nu heb:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$datum = date('Y-d-m');
$query = "
SELECT
*,
(".$datum." - leden_geboortedatum ) AS leeftijd
FROM
vvs_leden
WHERE
leden_id = ".$spelerid."
";
?>
$datum = date('Y-d-m');
$query = "
SELECT
*,
(".$datum." - leden_geboortedatum ) AS leeftijd
FROM
vvs_leden
WHERE
leden_id = ".$spelerid."
";
?>
Ps. Ga niet in PHP een datum aanmaken wanneer de database dat zelf ook kan: CURRENT_DATE. Dat voorkomt problemen met verschillende klokken en tijdzones.
pgFrank schreef op 08.09.2008 20:47:
Zie de MySQL-handleiding, daar staat ergens een fraaie query waar men de leeftijd berekend van huisdieren. Zoek maar even op AGE en PETS, dan kom je er wel.
Ps. Ga niet in PHP een datum aanmaken wanneer de database dat zelf ook kan: CURRENT_DATE. Dat voorkomt problemen met verschillende klokken en tijdzones.
Ps. Ga niet in PHP een datum aanmaken wanneer de database dat zelf ook kan: CURRENT_DATE. Dat voorkomt problemen met verschillende klokken en tijdzones.
Het is overigens CURDATE()
edit:
Die query van de SQL handleiding kan ook, al is deze denk ik wel duidelijker, maar welke sneller is weet ik niet, heb ik ook niet getest
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Robert_Deiman schreef op 08.09.2008 20:50:
Het is overigens CURDATE()
En dan uit de MySQL-handleiding:
Quote:
CURRENT_DATE and CURRENT_DATE() are synonyms for CURDATE().
En wanneer je dan naar de SQL-standaard kijkt (volgens PostgreSQL):
Quote:
PostgreSQL provides a number of functions that return values related to the current date and time. These SQL-standard functions all return values based on the start time of the current transaction:
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_TIME(precision)
CURRENT_TIMESTAMP(precision)
LOCALTIME
LOCALTIMESTAMP
LOCALTIME(precision)
LOCALTIMESTAMP(precision)
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_TIME(precision)
CURRENT_TIMESTAMP(precision)
LOCALTIME
LOCALTIMESTAMP
LOCALTIME(precision)
LOCALTIMESTAMP(precision)
Dan zie je dat CURRENT_DATE door beide databases wordt ondersteund. Dan is het wel zo handig om jezelf die standaard aan te leren, loop je nooit te klooien met de verkeerde functie/constante.
Ik zuig het niet helemaal uit mijn duim...
Bedankt voor jullie hulp.
Neej ik zie dat je gelijk hebt, ik pas bovenstaande nog even aan met current_date dan.