| |
Posté le 24 mai 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 |
| |
| |
| | | |
|
| | |
| |
Posté le 24 mai 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 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 623 messages Popularité : +100 (114 votes) |
|
Posté le 24 mai 2018 - 18:29 |
Bonjour,
Essayer un LIKE 'date%'
ex pour la date du jour, WHERE MaDate LIKE '20180524%' |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 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 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 623 messages Popularité : +100 (114 votes) |
|
Posté le 25 mai 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++ Message modifié, 25 mai 2018 - 12:24 |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 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 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 623 messages Popularité : +100 (114 votes) |
|
Posté le 25 mai 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. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 886 messages Popularité : +227 (347 votes) |
|
Posté le 25 mai 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 tourneMessage modifié, 25 mai 2018 - 16:41 |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2018 - 17:49 |
Je l'ai testé ca marche (inclus la date de fin dans) |
| |
| |
| | | |
|
| | |