Existe-t-il un moyen "facile" de calculer le nombre de jours entre deux dates (par exemple, je voulais connaître le nombre de mardis entre le 1er janvier 2000 et aujourd'hui)? De plus, la même question s'applique plus largement aux différentes unités (par exemple, combien de 2pms entre deux dates, combien de février, combien de 21 Auguste, etc.) ... Le meilleur que j'ai trouvé (pour les jours entre les dates) est la suivante:Nombre de jours particuliers entre deux dates
with calendar as (
select to_char(:start + level - 1, 'DAY') dayOfWeek
from dual
connect by level <= ceil(:end - :start)
)
select dayOfWeek, count(dayOfWeek)
from calendar
group by dayOfWeek;
Je dois créer une vue de ce - hardcoding les dates de début et de fin - pour le rendre pratique (ish) à utiliser; soit cela ou écrire une fonction pour faire le sale boulot. Ce ne serait pas difficile, mais je me demande s'il y a déjà une fonction Oracle qui pourrait le faire, ce qui représente pour des choses comme jours bissextiles, etc.
EDITThis surgissaient dans les liens connexes lorsque J'ai posté ceci. Cela répond plus ou moins à la question pendant des jours et je sais qu'il y a une fonction months_between
que je pourrais utiliser pendant des mois particuliers. D'autres fonctions connexes que je devrais connaître?
Voir http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions002.htm#i88891 pour la liste des fonctions de date Oracle. –
Construisez-vous un [Calendrier] (http://www.perpendulum.com/2012/06/calendar-table-script-for-oracle/) et tous vos problèmes de date disparaîtront. – GarethD