# Logiciels > Solutions d'entreprise > Business Intelligence > SAP Crystal Reports >  Comparaison de date/heure fournies en paramtre avec date/heure de la base

## DEV_CT_01

Etant novice dans l'utilisation de Crystal Report, je sollicite votre aide.

Je souhaiterai comparer un champ date/heure au format (DD/MM/YYYY HH24:MI) rcupr de la base avec une date de dbut (DD/MM/YYYY) + heure de dbut (HH:MI) et une date de fin (DD/MM/YYYY) + heure de fin (HH:MI) fournis en entres en paramtre au rapport Crystal report? Les dates et heures fournies en entre en paramtre   sont tous des chanes. Et dans quelle parties de Crystal Report faut-il le mettre.
  - Slection des donnes enregistres OU Slection d'enregistrement?
Comment mettre tout cela au bon format pour que la comparaison fonctionne?

Pour l'instant voici ce que j'ai fait dans la partie "Slection d'enregistrement" : 

```
(({Command.ENTRY_TIMESTAMP} >= {?DateDeDebut} & " " & {Command.START_TIME}) AND ({Command.ENTRY_TIMESTAMP} <= {?DateDefin}) & " " & {Command.END_TIME}))
```

Message d'erreur obtenu: Le texte restant ne semble pas faire partie de la formule.

Merci pour votre aide.
JN

----------


## luc_chivas

Bonjour

Quel est le format exact des champs incrimin ( l'affichage)

----------


## luc_chivas

Essaye de compiler les formule avec la fonction datetime
mais tes paramtres doivent tre en format Date



```
(({Command.ENTRY_TIMESTAMP} >= Datetime({?DateDeDebut},{Command.START_TIME}) AND ({Command.ENTRY_TIMESTAMP} <= Datetime({?DateDefin},{Command.END_TIME}))
```

----------


## DEV_CT_01

> Bonjour
> 
> Quel est le format exact des champs incrimin ( l'affichage)


Le format de la date  l'affichage est : DD/MM/YYYY HH:MI ==> 10/11/2015 12:13

----------


## DEV_CT_01

J'ai implment cette solution , mais j'ai eu une popup me disant que 


> Trop d'arguments ont t attribus  cette fonction


 en me surlignant {Command.START_TIME}.
Ci-joint le fichier avec l'erreur.

Un formatage est-il ncessaire pour pouvoir comparer correctement tous les champs??

----------


## luc_chivas

qu'y a t'il dans ces champs. vous pouvez les afficher et publier sur le forum ?

----------


## DEV_CT_01

> qu'y a t'il dans ces champs. vous pouvez les afficher et publier sur le forum ?


Alors,

- Le champ "ENTRY_TIMESTAMP" est un champ DATE de la base au format "10/11/2015 07:18"
- Les paramtres en entre "DateDeDebut" et "DateDeFin" sont des chaines "10/11/2015" et "11/11/2015"
- Les champs "START_TIME" et "END_TIME" sont des champs VARCHAR2 de la base rcuprs respectivement "06:00" et "12:00"

Donc plusieurs formats.

Voil
Merci

----------


## luc_chivas

Essayer de mettre Ctime() pour les heures



```
(({Command.ENTRY_TIMESTAMP} >= {?DateDeDebut} & " " & ctime({Command.START_TIME})) AND ({Command.ENTRY_TIMESTAMP} <= {?DateDefin}) & " " & ctime({Command.END_TIME})))
```

----------


## DEV_CT_01

Merci, cela fonctionne bien mieux, mais je pense que j'ai toujours un problme de formatage de la date.

1- Est-ce que je peux forcer le format de la date pour le TIMESTAMP ainsi que pour la DateDeDebut et la DateDeFin soit au format "DD/MM/YYYY" avec une fonction du type ToText?

2- Comment ajouter 1 jour  ma date de fin en fonction d'un critre?
Ex: 

```
{Command.ENTRY_TIMESTAMP} <= {?DateDefin}  + (if {?PeriodeFin} ='Nuit' then return 1 else 0) & " " & ctime({Command.END_TIME})
```

c'est juste pour expliquer ce que je souhaiterai faire.

Merci

----------


## luc_chivas

le format de date pour tre reconnu dpend de la configuration de ta base de donnes donc doit rester tel quel.
Si c'est pour de l'affichage, tu va trouver cela dans la mise en forme du champs ou de la formule
Regarde la fonction dateadd et sans faire de test dans ta formule, en cas de jour, tu rajoutes 0 jour en cas de 1 tu rajoutes 1 jour

Dans ton paramtre Statique que tu vas appel Jour/Nuit
Valeur = 0 Description Jour
Valeur =1 Description Nuit
Invite avec Description Uniquement Vrai
Invite Facultative Faux
Valeur par defaut  0
Autoriser les valeurs personnalises  Faux
et peux faire Afficher la valeur ou la description "Afficher la Description" si tu veux afficher ce paramtre sur ton rapport

----------


## DEV_CT_01

Merci, je ferai le test et vous tiens au courant

----------


## DEV_CT_01

> Merci, je ferai le test et vous tiens au courant


Aprs plusieurs tests et tentatives de comparaison de date, voici le rsultat:
Explication:
*Le but est d'extraire des donnes de la base (Date) comprise entre (Date1,heureDebut) et (Date2,heureFin)* 

La variable "Date" est au format Date dans la base.
La variable "Date1" est un paramtre d'entre qui est une chane de caractre au format "DD/MM/YYYY".
La variable "heureDebut" et "heureFin" sont des paramtres d'entre qui sont des chanes de caractre au format "HH:MM".




```

```

Merci Luc pour ton aide.
Voil j'espre que cela peut aider d'autres personnes.

----------

