web-dev-qa-db-fra.com

Obtenez le nombre de jours entre deux dates dans Oracle, y compris les dates

Je veux obtenir le nombre total de jours entre deux dates fournies. J'ai essayé la requête ci-dessous mais je n'ai pas obtenu la différence exacte; la dernière date n'est pas incluse.

select (to_date ('15-06-13','dd-MM-yyyy') - to_date('01-02-12','dd-MM-yyyy')) 
  from dual

Cela devrait renvoyer 501 jours, mais il retourne 500 jours à la place. Si j'ajoute +1 après le calcul, j'obtiens le résultat correct.

Dois-je vraiment inclure +1 ou existe-t-il une autre approche pour obtenir le résultat réel?

11
user968441

Dans Oracle, la soustraction de deux dates renvoie le nombre de jours entre deux dates.
Un opérateur minus fonctionne de la même manière que pour les nombres:

20 - 20 = 0   ===>      2013-05-20  -  2013-05-20 = 0
25 - 20 = 5   ===>      2013-05-25  -  2013-05-20 = 5

Si vous souhaitez inclure last number ou last date, vous devez ajouter 1:

20 - 20 + 1 = 1   ===>      2013-05-20  -  2013-05-20  + 1 = 1
25 - 20 + 1 = 6   ===>      2013-05-25  -  2013-05-20  + 1 = 6
16
krokodilko