Recherche sur les dates
-
Fonctionnalités impactées
Toutes les listes d’objets sont impactées.
Lors de la saisie d’un filtre de recherche sur un champ de type date, Il est possible de rechercher :- Sur une date ou partie de date.
- Via des raccourcis sur des dates (aujourd’hui) ou intervalles (mois courant, année courante) …
- Les valeurs non renseignées.
- Des dates calculées à partir du jour/mois/année courant(e) en utilisant des formules simples dans les parties de date (m-1, j-3, a-1…).
- Des combinaisons de date en utilisant des jokers pour remplacer n’importe quel chiffre d’une date.
- Sur un intervalle de dates (entre A et B).
- La négation d’un critère (non A)
- Un ensemble de critères (A ou B ou …).
- Une intersection de critères (A et B et …).
Règles de gestion et exemples
Les possibilités décrites ci-dessus peuvent se combiner dans une seule recherche en respectant certaines règles ci-dessous.
En toute logique, il est impossible :- D’utiliser des expressions représentant des intervalles dans une partie gauche ou droite d’un intervalle.
- D’utiliser des jokers dans les parties gauche ou droite d’un intervalle.
Dans les exemples suivants, on considère que la date courante est le 15/06/2016.
Recherche sur date ou intervalle implicite
<table>
<tr>
<th>Type</th>
<th>Format</th>
<th>Exemples</th>
<th>Filtre</th>
</tr>
<tr>
<th colspan=“4”>Journée</th>
</tr>
<tr>
<td>Date</td>
<td>jj/mm/aaaa</td>
<td>03/06/2016<br/>3/6/2016</td>
<td>03/06/2016</td>
</tr>
<tr>
<td>Jour / Mois<br/>/La recherche est sur l’année courante./</td>
<td>jj/mm</td>
<td>03/06<br/>03/06/2016</td>
<td>03/06/2016</td>
</tr>
<tr>
<td>Jour <br/>/La recherche est sur le mois et l’année courants./</td>
<td>dd</td>
<td>03<br/>3</td>
<td>03/06/2016</td>
</tr>
<tr>
<td>Raccourci sur aujourd’hui</td>
<td>Mot clé</td>
<td>j<br/>aujourd’hui<br/>today</td>
<td>15/06/2016</td>
</tr>
<tr>
<th colspan=“4”>Mois complet</th>
</tr>
<tr>
<td>Mois / Année</td>
<td>mm/aaaa</td>
<td>06/2016<br/>6/2016</td>
<td>01/06/2016 à 30/06/2016</td>
</tr>
</tr>
<tr>
<td>Raccourci sur mois courant</td>
<td>Mot clé</td>
<td>m<br/>mois courant<br/>mois en cours</td>
<td>01/06/2016 à 30/06/2016</td>
</tr>
<tr>
<th colspan=“4”>Année complète</th>
</tr>
<tr>
<td>Année</td>
<td>aaaa</td>
<td>2016</td>
<td>01/01/2016 à 31/12/2016</td>
</tr>
<tr>
<td>Raccourci sur année en cours</td>
<td>Mot clé</td>
<td>a<br/>année courante<br/>année en cours</td>
<td>01/01/2016 à 31/12/2016</td>
</tr>
</table>Valeur non renseignée
En utilisant le mot clé « vide » il est possible de rechercher les objets où le champ de type date n’a pas été renseigné.
Exemple :
<table>
<tr>
<th>Mot clé</th>
<th>Filtre</th>
</tr>
<tr>
<td>vide</td>
<td>sans date</td>
</tr>
<tr>
<td>00/00/0000</td>
<td>sans date</td>
</tr>
</table>Utilisation de jokers
Les dates ou intervalles implicites peuvent s’exprimer avec des jokers * .
Exemples :
<table>
<tr>
<th>Mot clé</th>
<th>Filtre</th>
</tr>
<tr>
<td><notextile>01/01/201*</notextile></td>
<td>Filtre : Le 1er janvier des années 2010 à 2019</td>
</tr>
<tr>
<td><notextile>15/*/2016</notextile></td>
<td>Filtre : Le 15 de chaque mois de l’année 2016</td>
</tr>
<tr>
<td><notextile>*5/1*/2016</notextile></td>
<td>Filtre : Les 5,15 et 25 des mois d’oct, nov et déc (10,11,12) de l’année 2016</td>
</tr>
</table>Recherche sur dates et intervalles implicites avec formules
Il est possible d’utiliser les raccourcis j/m/a avec les opérateurs ± suivi d’un nombre entier pour calculer des dates ou intervalles implicites à partir du jour courant.
Exemples :
<table>
<tr>
<th>Mot clé</th>
<th colspan=2 >Filtre</th>
</tr>
<tr>
<td><notextile>a-2</notextile></td>
<td>L’année 2014</td>
<td>01/01/2014 à 31/12/2014</td>
</tr>
<tr>
<td><notextile>m-3</notextile></td>
<td>Le 3ème mois précédent</td>
<td>01/03/2016 à 31/03/2016</td>
</tr>
<tr>
<td><notextile>j-2</notextile></td>
<td>Il y a 2 jours</td>
<td>13/06/2016</td>
</tr>
<tr>
<td><notextile>m-3/a-2</notextile></td>
<td>Le 3ème mois précédent (le mois courant) de l’année 2014</td>
<td>01/03/2014 à 31/03/2014</td>
</tr>
<tr>
<td><notextile>10/m/a-1</notextile></td>
<td>Le 10 du mois courant l’année précédente</td>
<td>10/05/2015</td>
</tr>
<tr>
<td><notextile>j+3/m+1/a-1</notextile></td>
<td>Le 3ème jour suivant (aujourd’hui) du mois suivant (le mois courant) de l’année précédente</td>
<td>18/07/2015</td>
</tr>
</table>Recherche sur intervalle explicite
Il est possible de rechercher dans un intervalle de date explicite. Les 2 extrémités doivent être sans joker !
Le caractère « – » (Trait d’union ) sert à délimiter un intervalle explicite.
Les formules peuvent être utilisés dans les extrémités
Exemple
<table>
<tr>
<th>Mot clé</th>
<th>Filtre</th>
</tr>
<tr>
<td>2015-2016</td>
<td>Entre le 01/01/2015 et le 31/12/2016</td>
</tr>
<tr>
<td>06/2015-3/2016</td>
<td>Entre le 01/06/2015 et le 31/03/2016</td>
</tr>
<tr>
<td>10/03/2015-5/6/2015</td>
<td>Entre le 10/03/2015 et le 05/06/2015</td>
</tr>
<tr>
<td>10/3-10/6</td>
<td>Entre le 10/03/2016 et le 10/06/2016</td>
</tr>
<tr>
<td>m-3-m-1</td>
<td>Entre le 01/03/2016 et le 31/05/2016</td>
</tr>
<tr>
<td>10/m-1-d</td>
<td>Entre le 10/05/2016 et le 15/06/2016</td>
</tr>
</table>Recherche par négation
Il est possible de rechercher sur la négation d’un critère en précédant le critère par le signe point d’exclamation « ! ». Le critère est forcément une date, un mot clé ou un intervalle explicite.
Exemple
<table>
<tr>
<th>Mot clé</th>
<th>Filtre</th>
</tr>
<tr>
<td>!2016</td>
<td>Sauf entre le 01/01/2016 et le 31/12/2016</td>
</tr>
<tr>
<td>!07/201*</td>
<td>Sauf les jours de juillet des années entre 2010 et 2019</td>
</tr>
<tr>
<td>!7/2015-8/2015</td>
<td>Sauf entre le 01/07/2015 et le 31/08/2015</td>
</tr>
<tr>
<td>!aujourd’hui</td>
<td>Sauf le 15/06/2016</td>
</tr>
<tr>
<td>!vide</td>
<td>Toutes les dates renseignées</td>
</tr>
<tr>
<td>!27/04/2015</td>
<td>Sauf le 27/04/2015</td>
</tr>
</table>Recherche sur un ensemble de critères
Il est possible de rechercher sur un ensemble de critères séparés par le caractère virgule « , » !
Exemple
<table>
<tr>
<th>Mot clé</th>
<th>Filtre</th>
</tr>
<tr>
<td>2014,2016</td>
<td>Entre le 01/01/2014 et le 31/12/2014<br/>OU Entre le 01/01/2016 et le 31/12/2016</td>
</tr>
<tr>
<td>m-2,m</td>
<td>Entre le 01/04/2016 et le 30/04/2016<br/>OU Entre le 01/06/2016 et le 30/06/2016</td>
</tr>
<tr>
<td>vide,aujourd’hui,d/m-1,d/m-2</td>
<td>Date non renseignée<br/>OU Le 15/06/2016<br/>OU Le 15/05/2016<br/>OU Le 15/04/2016</td>
</tr>
</table>Recherche sur une intersection de critères
Il est possible de rechercher sur une intersection de critères séparés par le caractère esperluette « & » !
Exemple
<table>
<tr>
<th>Mot clé</th>
<th>Filtre</th>
</tr>
<tr>
<td><notextile>201*& !2016</notextile></td>
<td>Les années 2010 à 2019 et pas (sauf) l’année 2016</td>
</tr>
<tr>
<td><notextile>*/2015&!1/2015&!12/201</notextile></td>
<td>Toute l’année 2015 sauf les mois de janvier et décembre</td>
</tr>
</table>Combinaison de critères
Il est possible de combiner les critères en respectant les règles suivantes :- L’intervalle explicite ne peut pas contenir de joker.
- L’intervalle explicite « – » est prioritaire sur la négation. Autrement dit « !A-B » signifie « NON (A-B) » et pas « (NON A)-B ».
- La négation est prioritaire sur l’intersection « & » et l’ensemble « , »
- L’intersection « & » est prioritaire sur l’ensemble « , »
Exemple
<table>
<tr>
<th>Mot clé</th>
<th>Filtre</th>
</tr>
<tr>
<td>A&B,C </td>
<td>(A ET B) OU C</td>
</tr>
<tr>
<td>A,B&!C-D</td>
<td>A OU (B ET NON (ENTRE C et D))</td>
</tr>
</table>Améliorations futures
- Support des opérateurs de comparaisons (>, ≥, <, <=)
- Support de priorité dans les expressions via les parenthèses
- Support de jour de la semaine (ex : Pouvoir exprimer « tous les lundis du mois de février » ; « tous les jours de 2016 sauf les vendredi »)
- Support d’un nom de champ (ex : Pouvoir exprimer « dont la date est supérieur à la date d’échéance du contrat lié »).
- Recherche par numéro de semaine.