2016-07-27 1 views
-1

J'utilise Oracle Business Intelligence et crée un rapport personnalisé. J'ai été capable de créer et de faire fonctionner tout sauf qu'il y a un problème dans l'utilisation des paramètres sur les rapports planifiés. Ceci m'oblige à coder en dur les dates de mise à jour automatique dans le modèle de données. Est-ce que quelqu'un est en mesure d'aider avec le meilleur moyen de remplacer mes paramètres ci-dessous?Date du système en tant que clause

Essentiellement, je suis à la recherche de START_DATE_PARAMETER être remplacé par la date du système MOINS 15 et END_DATE_PARAMETER être avec système Date remplace PLUS 1.

AND table1.EFFECTIVE_START_DATE >= :START_DATE_PARAMETER 
AND table1.EFFECTIVE_START_DATE <= :END_DATE_PARAMETER 
AND table2.EFFECTIVE_END_DATE >= :START_DATE_PARAMETER 
AND table2.EFFECTIVE_END_DATE <= :END_DATE_PARAMETER 
+0

Avez-vous essayé '(TRUNC (ACTUEL_ TIMESTAMP) - 15) 'et' (TRUNC (CURRENT_TIMESTAMP) + 1) '? Je suppose que vous voulez dire 15 et 1 jours, pas des mois ou des années ou des heures ou quoi que ce soit. – jpmc26

+0

@jpmc - pourquoi CURRENT_TIMESTAMP et pas SYSDATE? Et pourquoi l'offrir comme commentaire, alors que c'est évidemment une réponse? – mathguy

+0

@mathguy 'SYSDATE' inclut de toute façon un horodatage, donc je préfère le nom explicitement' CURRENT_TIMESTAMP'. 'CURRENT_TIMESTAMP' comprend également un fuseau horaire. Quant à savoir pourquoi un commentaire, parce que si c'est la réponse, c'est une question mal documentée et mérite d'être fermé au lieu de répondre. – jpmc26

Répondre

0

J'apprécie les commentaires de tout le monde. Je suis relativement nouveau dans le domaine du SQL et j'essaie de développer mes compétences de sorte que toutes les contributions sont très appréciées. Comme mes paramètres sont censés inclure plus que ce dont j'ai réellement besoin, je peux potentiellement utiliser la solution 'CURRENT_TIMESTAMP' ou 'SYSDATE'. La seule pièce du puzzle que je manquait était l'inclusion de 'TRONQUE ('

ET table1.EFFECTIVE_START_DATE> = (TRUNC (CURRENT_TIMESTAMP) - 15)

ET table1.EFFECTIVE_START_DATE < = (TRUNC (CURRENT_TIMESTAMP) + 1)

ET table2.EFFECTIVE_END_DATE> = (TRUNC (CURRENT_TIMESTAMP) - 15)

ET table2.EFFECTIVE_END_DATE < = (TRUNC (CURRENT_TIMESTAMP) + 1)