snipersolo
Messages postés5Date d'inscriptionmardi 10 décembre 2002StatutMembreDernière intervention24 avril 2006
-
11 déc. 2002 à 12:59
djarou_ahmed
Messages postés1Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention 7 juin 2005
-
7 juin 2005 à 21:27
salut
j'ai un programme comportant une BDD, l'un des champs est au format TDate. lorsque je veux faire une requete du type:
select pers_num
from personne
where date >= :a
and date <= :b
la requete ne marche que si les dates selectionnées par l'utilisateur forment un intervalle d'un mois. Sur un jour ca marche pas.
j'utilise une table ADO avec une BDD Acces.
merci a+
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 11 déc. 2002 à 23:16
Que veux-tu dire, par ne fonctionne pas ?
Par contre dans le cas ou a et b ont la même valeur, ta requète sera vide. Car souvent les champs date contiennent aussi l'heure. Par habitude j'utilse date>=:a and date<:b en ajoutant 1 à b. Ainsi ,même si l'heure est incluse, la requète fonctionne bien.
--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 11 déc. 2002 à 23:39
Première remarque : la fonction between est adaptée à ce type de sélection :
Select pers_num from personne where date between :a and :b
Deuxièmement : les dates sont-elles formattées correctement ? SQL interprète les date au format mm/jj/aaaa.
Troisièmement : as-tu essayé ta requête en live, avec l'explorateur de données (onglet SQL) sur ta base de données ? Quand une requête ne produit aucun résultat contre toute attente, il est souvent utile de recourir à ce type d'outils.
Je viens de revérifier ta requête en l'appliquant à la table Orders de la base DbDemos livrée avec Delphi et je t'assure que celà fonctionne...si l'on formatte la date selon les volontés de SQL !
NinJoDo
Messages postés23Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 5 mars 2007 22 juil. 2004 à 12:58
Salut DelphiProg,
Ca fait un bail que j'assiste à tes brillantes démonstrations et à tes coups de gueules.
Content de te poser une question.
Tu dis que pour qu'une requête SQL prenant en compte une date fonctionne, il faut que la date soit formatée en mm/jj/aa.
Qu'entends-tu par formatée ?
Elle doit être formatée :
- dans la requête SQL ?
- dans la table elle-même ?
- dans mon DBGrid ?
Si c'est dans la requête SQL, la requête : 'SELECT * FROM theses WHERE Date='07/10/2004'' ne fonctionne pas.
Si c'est dans la table, je n'ai pas trouvé, comme sous Access, de possibilité de faire un format prédéfini.
Si c'est dans le DBGrid, je n'ai pas trouvé comment changer le format de la date dans l'inspecteur d'objets du Champ Date de mon DBGrid.