Sql et Tdate

snipersolo Messages postés 5 Date d'inscription mardi 10 décembre 2002 Statut Membre Dernière intervention 24 avril 2006 - 11 déc. 2002 à 12:59
djarou_ahmed Messages postés 1 Date d'inscription samedi 18 novembre 2000 Statut Membre Derniè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+

4 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
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
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
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 !

May Delphi be with you
0
NinJoDo Messages postés 23 Date d'inscription mercredi 11 février 2004 Statut Membre Derniè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.

Merci et @+
0
djarou_ahmed Messages postés 1 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 21:27
ca peut nvous aidz
where date between
0
Rejoignez-nous