Je modifie une requête dans Oracle, dans laquelle les données du mois précédent sont nécessaires. Actuellement, la requête a une clause where avec ce qui suit :
...
...
...
WHERE cust_dt BETWEEN TO_DATE('05-01-2022','mm-dd-yyyy) AND TO_DATE('05-31-2022', 'mm-dd-yyyy')
Je modifie la requête pour que la date de début et la date de fin ne doivent pas être modifiées manuellement chaque mois pour exécuter la requête. Après quelques recherches, j'ai trouvé ce qui suit :
...
...
...
WHERE TO_CHAR(cust_dt, 'MM-YYYY') = TO_CHAR(add_months(sysdate, -1), 'MM-YYYY')
Les résultats que j'obtiens sont ceux que je souhaite, mais je suis curieux de savoir quelle requête sera la plus performante si l'on dispose d'un ensemble de données plus important. Tous les messages que j'ai vus en ligne utilisaient BETWEEN, je me demandais donc s'il y avait une raison à cela.
Je suis complètement novice en ce qui concerne les réglages, les tests, les performances, etc. des requêtes. La requête elle-même est assez complexe avec plusieurs jointures, donc la performance est importante. Pour l'instant, je ne dispose que d'une petite quantité de données de test pour travailler, je suis donc limité dans ce que je peux faire pour trouver le meilleur résultat.
Pour en revenir à ma question, quelle requête serait la meilleure ? Celle qui utilise BETWEEN, ou celle qui utilise TO_CHAR ?