4 votes

Comment obtenir des données hebdomadaires dans Oracle

J'ai créé un rapport matriciel dans lequel j'ai besoin d'afficher les colonnes dynamiquement en fonction du paramètre de sélection. J'ai un paramètre de sélection qui est la date.

Si je sélectionne la date "03/01/2010" dans le paramètre de sélection, c'est-à-dire le 1er mars 2010, l'affichage doit être le suivant : 1er mars - 7 mars.

4voto

Ben Points 23834

Cela dépend de ce que vous recherchez. Si vous voulez les 7 prochains jours, alors.. :

select * 
  from my_table
 where date_col between :my_date and :my_date + 7

Si vous voulez dire du lundi au dimanche, utilisez l'option next_day fonction :

select *
  from my_table
 where date_col between next_day(:my_date, 'Monday') - 7 
                    and next_day(:my_date, 'Monday')

Les deux où :my_date est la date de votre passage.

Si vous ne passez pas une date mais une chaîne de caractères, la première devient, à l'aide de la fonction to_date fonction :

select *
  from my_table
 where date_col between to_date(:my_date,'dd/mm/yyy') + 7
                    and to_date(:my_date,'dd/mm/yyy')

et vous pourriez faire quelque chose de similaire pour le second. Si vous devez utiliser to_date puis date_col devrait avoir un indice basé sur la fonction sur to_date(date_col,'dd/mm/yyyy') ou si vous allez le convertir différemment, c'est ainsi.

4voto

Adam Musch Points 8021

Pour obtenir des données hebdomadaires plutôt que des données pour les sept jours suivants, utilisez la fonction TRUNCATE avec la fonction W pour diviser les données en semaines calendaires.

select trunc(date '2012-01-30', 'w') from dual;

TRUNC(DATE'2012-01-
-------------------
2012-01-29 00:00:00

Note : Le jour de la semaine auquel ce chiffre est tronqué dépend des données de l'ENL - dans certaines localisations, les semaines commencent le dimanche ; dans d'autres, le lundi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X