J'ai la requête de sélection ci-dessous pour les données quotidiennes, comment puis-je modifier pour qu'elle extrait le mois complet de données
select * from BAU_SDT_INV_USER where trunc(CHECKED_DATE) = to_date('2018/12/18', 'YYYY/MM/DD')
4 Réponses :
Si vous voulez le mois complet dans Oracle:
where checked_date >= date '2018-12-01' and checked_date < date '2019-01-01'
Peut-être quelque chose comme ça?
select * from BAU_SDT_INV_USER where CHECKED_DATE >= to_date('2018/12/01', 'YYYY/MM/DD') and CHECKED_DATE < to_date('2019/01/01', 'YYYY/MM/DD')
select * from BAU_SDT_INV_USER where CHECKED_DATE >= ADD_MONTHS(to_date(:inputDate, 'YYYY/MM/DD'), -1) and CHECKED_DATE < TO_DATE(:input_Date,'YYYY/MM/DD');
Si les performances ne sont pas un point clé pour votre requête, il suffit de trunc
par mois aux deux extrémités de la comparaison:
select * from BAU_SDT_INV_USER where trunc(CHECKED_DATE, 'mm') = trunc( to_date('2018/12/18', 'YYYY/MM/DD'), 'mm')
Correct, mais pas compatible avec les index.
@TheImpaler: Oui. J'ai mis à jour mon message pour le notifier.