2017-10-20 13 views
-1

Je veux sélectionner la valeur anniversaire de ma table de base de données. Si elle n'est pas nulle, la sortie doit être une date. Mais si elle est nulle, alors la sortie devrait être vide.Comment puis-je obtenir une date à partir de la base de données mysql si elle n'est pas nulle?

'SELECT *, 
    case when isnull(mydate) then null else date_format(mydate, cats.bithday,"%d.%m.%y") end as birthday; 
    FROM cats 
    LEFT JOIN dogs ON cats.dogs=dogs.id' 

Je reçois une erreur:

Syntax error or access violation: 1582 Incorrect parameter count in the call to native function 'date_format'

+1

Voir: [Pourquoi devrais-je fournir un MCVE pour ce qui me semble être une très simple requête SQL?] (Https : //meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query) – Strawberry

Répondre

2
SELECT *, ifnull(cats.bithday,'') as cats_birthday 
FROM cats 
LEFT JOIN dogs ON cats.dogs=dogs.id 

Résultat:

case (birthday is null) 
    cats_birthday = '' 
case (birthday is not null) 
    cats_birthday = db-value 
+0

Cela signifie que je l'écris comme ceci: 'ifnull (DATE_FORMAT (cats.birthday,"% d.% M.% Y "), '') AS cats_birthday' – Jarla

+1

@Jarla oui, vous avez raison –

0

Vous donnez date_format trois paramètres, mais il attend seulement deux.

Voir la MySQL docs here

DATE_FORMAT(date,format)