Comment utiliser DATEDIFF? Combien de jours sont à l'intérieur de deux dates
Question
Comment utiliser DATEDIFF? Comment puis-je faire cela fonctionne? ou devrais-je utiliser DATEDIFF différemment completly?
SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';
J'essaie d'obtenir réponse, combien de jours sont à l'intérieur de deux dates.
Je voudrais avoir une aswer comme:
Durée = 7 jours;
J'ai ce genre de base de données:
Démarrage | will_end
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26
La solution
Mettre will_end
d'abord, started
seconde:
SELECT DATEDIFF('2009-12-24', '2009-12-17')
---
7
En outre, supprimez les guillemets simples de vos noms de champs:
SELECT DATEDIFF(will_end, started) AS Duration
FROM my_table
WHERE id = 110
, ou les remplacer par contre-apostrophes:
SELECT DATEDIFF(`will_end`, `started`) AS `Duration`
FROM `my_table`
WHERE `id` = 110
Autres conseils
Vous obtenez un résultat NULL
? Vous avez les noms de colonnes dans des guillemets simples dans votre requête, qui signifie que vous passez les chaînes 'Started '
et 'will_end'
à DATEDIFF
plutôt que les valeurs de la colonne. Essayez de supprimer les guillemets simples, et vous commencerez à voir des résultats:
SELECT DATEDIFF(Started, will_end) AS Duration FROM my_table WHERE id = '110';
Notez que cela vous donnera un résultat négatif. Pour obtenir un résultat positif, inverser l'ordre des colonnes:
SELECT DATEDIFF(will_end, Started) AS Duration FROM my_table WHERE id = '110';
remplacer l'ordre
DATEDIFF ( 'will_end', 'commencer')
Je pense qu'il ya trois paramètres passés dans DATEDIFF (datepart, startdate, enddate)
votre code serait DATEDIFF (dd, 'route', 'will_end')