PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Paramètre Horodatage
Paramètre Horodatage
Iniciado por simon, 24,may. 2018 15:06 - 8 respuestas
Publicado el 24,mayo 2018 - 15:06
bonjour

Je veux créer une requête paramétrée sur une rubrique horodatage, ma question comment je filtre uniquement sur date on ignorant l'heure

MaRequete.ParamDateHeures=sai_Date

Merci d'avance
Publicado el 24,mayo 2018 - 15:27
Bonjour,
Je vois deux solutions:
Appliquer la fonction date() à la rubrique du fichier, mais ça va empêcher
l'utilisation d'un éventuel index.
Utiliser un between, et prendre de 00:00:00 à 23:59:59 avec la date.

Frédéric.

"simon" a écrit dans le message de groupe de discussion :
20181d58109fc11b320ca2de8a7d8e842b9e@news.pcsoft.fr...

bonjour

Je veux créer une requête paramétrée sur une rubrique horodatage, ma
question comment je filtre uniquement sur date on ignorant l'heure

MaRequete.ParamDateHeures=sai_Date

Merci d'avance
Miembro registrado
1.623 mensajes
Popularité : +100 (114 votes)
Publicado el 24,mayo 2018 - 18:29
Bonjour,

Essayer un LIKE 'date%'

ex pour la date du jour, WHERE MaDate LIKE '20180524%'
Publicado el 25,mayo 2018 - 11:47
Merci de vos réponses

Je suis désolé peut être j'ai mal posé ma question.
Les 2 propositions ne seront pas résoudre mon cas, car le filtrage se fait entre période comme ceci:

MaRequete.ParamDateHeures between sai_Date1 and sai_date2 //On ignorant l'heure
Miembro registrado
1.623 mensajes
Popularité : +100 (114 votes)
Publicado el 25,mayo 2018 - 12:21
Hello,

Ben c'est pas grave ça, dans ce cas pour ta requete, tu ajoute l'heure a la main :
Pour la borne la plus petite tu ajoute minuit
et pour la borne max tu ajoute 23:59:59
dhDateDepart est une DateHeure = sai_Date1

dhDateFin est une DateHeure = sai_Date2
dhDateFin..Heure = 23
dhDateFin..Minute = 59
dhDateFin..Seconde = 59
dhDateFin..Milliseconde = 999


Tu n'a plus qu'a utiliser dhDateDepart et dhDateFin dans tes parametres de requete pour ton Between


Edit: A verifier mais, je ne sais pas si en HFSQL le between inclus ou pas la date max.. si il ne l'inclus pas tu peux faire plus simple pour DhDateFin en faisant juste :

dhDateFin est une DateHeure = sai_Date2
dhDateFin..Jour++
Mensaje modificado, 25,mayo 2018 - 12:24
Publicado el 25,mayo 2018 - 15:26
Merci François pour vos explication

C'est une bonne idée et ça devrer marcher oui le HFCLS accepte le between
Miembro registrado
1.623 mensajes
Popularité : +100 (114 votes)
Publicado el 25,mayo 2018 - 16:08
Je sais qu'il l'accepte, mais ce que je voulais dire c'est est ce que between inclus la date de fin dans la recherche ou si il l'exclus.. ca dépend des SGBD il me semble.
Miembro registrado
3.887 mensajes
Popularité : +227 (347 votes)
Publicado el 25,mayo 2018 - 16:38
Bonjour,
Il faut passer par une rubrique calculée.
sELECT
Adhérent.Pk_Adhérent AS Pk_Adhérent,
Adhérent.NDX_NomAdhérent AS Nom,
WL.ChaîneVersDate(WL.Gauche(WL.DateVersChaîne(Adhérent.NDX_DateHeureAdhésion),10)) AS DateAdhésion
FROM
Adhérent
WHERE
WL.ChaîneVersDate(WL.Gauche(WL.DateVersChaîne(Adhérent.NDX_DateHeureAdhésion),10)) BETWEEN {ParamDate1} AND {ParamDate2}

Puis
MaRequete.ParamDate1=SAI_Date1
MaRequete.ParamDate2=Sai_Date2

--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 25,mayo 2018 - 16:41
Publicado el 25,mayo 2018 - 17:49
Je l'ai testé ca marche (inclus la date de fin dans)