Requête SQL DATEDIFF retourner NULL
Je suis en train d'écrire cette requête dans la base mySQL. Le tableau listing
a deux colonnes StartDate
& EndDate
. Je veux retourner le Duration
ie nombre de jours entre ces deux dates à l'aide de DATEDIFF
. Ma question est:
SELECT DATEDIFF(StartDate, EndDate) as 'Duration' FROM listing;
La table renvoie la valeur NULL dans la colonne de Durée.
Et si j'écris,
SELECT DATEDIFF(day, StartDate, EndDate) as 'Duration' FROM listing;
retourne
Error Code: 1582. Incorrect parameter count in the call to native function 'datediff' 0.000 sec
Toute aide sera appréciée.
- quelles sont les deux valeurs si startdate et enddate?
- Quels sont les types de données de ces colonnes?
Vous devez vous connecter pour publier un commentaire.
Le problème était que
DATEDIFF()
attend la date dans le formatYYYYMMDD
et la colonne des entrées deStartDate
etEndDate
que je donnais étaitMMDDYYYY
. Je l'ai changé pourYYYYMMDD
et cela a fonctionné. Ainsi, l'expression suivante avec la date au format AAAAMMJJ fonctionne très bien.Deux paramètres est correcte. Si vous obtenez la valeur NULL, il est probablement parce que les valeurs dans ces colonnes ne sont pas de date ou datetime types.
À partir de la base de données MySql docs: