Bonjour à tous,

J'utilise aujourd'hui deux fonctions pour calculer l'âge d'une personne, soit je calcule l'âge par rapport à la date du jour, et alors je n'ai besoin que d'un paramètre(la date de naissance), soit je calcule l'âge par rapport à une date que je passe en paramètre j'ai alors deux paramètres.
J'ai donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
CREATE FUNCTION age( naissanceamj INT) RETURNS INT 
RETURN (
SELECT SUBSTRING(CURDATE()-naissanceamj,1,length(curdate()-naissanceamj)-4)
) ;
 
CREATE FUNCTION `age_d`( naissanceamj INT,date INT) RETURNS int(11)
RETURN (
SELECT SUBSTRING(date-naissanceamj,1,length(date-naissanceamj)-4)
)
Mais je voudrais de pas avoir à vérifier en PHP si j'ai ma date ou non pour décider ensuite de quel fonction utiliser, j'aimerais faire dans ma fonction SQL un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
IF date='' THEN SELECT SUBSTRING(CURDATE()-naissanceamj,1,length(curdate()-naissanceamj)-4)
ELSE SELECT SUBSTRING(date-naissanceamj,1,length(date-naissanceamj)-4)
END IF
mais cette syntaxe ne fonctionne pas.
Pas plus que celle-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT IF(date=’’,SUBSTRING(CURDATE()-naissanceamj,1,length(curdate()-naissanceamj)-4), SUBSTRING(date-naissanceamj,1,length(date-naissanceamj)-4))
A l'utilisation j'ai le message d'erreur suivant:
#1054 - Unknown column '’’' in 'field list'

Si quelqu'un voulait bien m'aider?
merci d'avance