Syntaxe SQL sur date

ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008 - 2 déc. 2008 à 16:36
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 16 déc. 2008 à 21:27
je tente de realiser une requete SQL sur une table Mdb via ADO

la requete, est qu'elle doit afficher tous ce qui se trouve en dessous de la date actuelle par rapport au champ DernierDecapage

j'ai une fois de plus tenté, mais je n'y arrive pas !

SELECT * FROM ListingBal WHERE   dernierDecapage < CURRENT_DATE

14 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
2 déc. 2008 à 17:46
re bonsoir,


là ta requête est bonne à condition de vérifier si le format de dernierDecapage est compatible avec Current_Date...

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
2 déc. 2008 à 18:14
le probleme c'est que lors de l'execution de cette requete, il me dit qu'il trouve une erreur non reconnue !!!!
alors que si j'execute une autre requete, il fonctionne, donc certainement un probleme de ompatibilité ????
mais ou regarder ?
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
2 déc. 2008 à 19:31
dernierDecapage dans la base de données et
Current_Date en principe AAAA-MM-JJ
à vérifier suivant le type de base..

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
2 déc. 2008 à 19:38
en fait dans la base de donnée je pense que c'est plutot  JJ-MM-AAAA !
existe t'il un moyen de convertir cela ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
3 déc. 2008 à 12:10
voir les fonctions natives de conversion dans le SGBD ou
faire un bon vieux traitement de chaîne de caractère.

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
11 déc. 2008 à 15:07
je viens de trouver cette fonction " REVERSE", mais je ne sait pas ou la placer dans la requete

SELECT * FROM ListingBal WHERE   dernierDecapage < CURRENT_DATE

car visiblement il s'agit d'un probleme type  jj/mm/aaaa  et aaaa/mm/jj
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
11 déc. 2008 à 15:48
Entre temps j'ai realisé cette requete:

SELECT *
From ListingBal
WHERE DernierDecapage >#1/1/2008#

il me donne bien le listing de tout ce qui est contenu avant le 1/1/2008

Par contre, comment changer la date via un composant DateTimePicker ????
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 déc. 2008 à 17:27
il me donne bien le listing de tout ce qui est contenu avant le 1/1/2008

moi je dirai après..

c'est bien ça ?

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
11 déc. 2008 à 17:37
Cantador,
a tu un debut de solution a me soumettre pour m'aider ?

Comme tu a certainement pu le constater, je cherche beaucoup plus qu'avant, avant de poster........ mais neanmoins je reste un debutant.........
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 déc. 2008 à 18:48
Ne t'inquiète pas, on commence à avoir l'habitude et
on sait trier le bon grain de l'ivrée..

On reprend :
WHERE DernierDecapage >#1/1/2008#

ça te donne bien les enregistrements SUPERIEURS au 1er janvier 2008 et non avant ..

Pour le DateTimePicker, moi je prendrai plutôt un MonthCalendar
avec évènement sur clic ou double -clic :
PROCEDURE TForm1.Button6Click(Sender: TObject);
BEGIN
Query1.Close;
  WITH Query1.SQL DO       
  BEGIN
   Clear;
   Add('SELECT *             ');
   Add('From ListingBal      ');    
   Add('WHERE DernierDecapage >:param    ');    
    Query1.ParamByName('param').AsString := '#' + MCPARAM.Date + '#';
    Query1.Open;
  END;
END;

je n'ai pas testé..
tiens moi au courant

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
11 déc. 2008 à 19:13
Sauf erreur de ma part,
 avec ta procedure, je n'arrive pas a recuperer la date qui est dans le MonthCalendar  pour l'injecter dans la requete SQL, c'est pouquoi j'avais plutot opté pour une DateTimePicker qui injecte la date selectionnée dans la requete.
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
12 déc. 2008 à 17:33
Il n'y a aucune raison pour que ça ne marche pas.
MonthCalendar ou DateTimePicker, c'est la même chose...
le premier reste ouvert et prend plus de place, le deuxième se referme automatiquement.
 
Il faut penser à débugger..(ça fait aussi partie de la programmation...)
car tu peux avoir un prog qui tourne parfaitement et qui sort n'importe quoi..

Mets un point d'arrêt sur Query1.Open;
et teste les valeurs.

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
16 déc. 2008 à 16:18
En ce qui concerne le point d'arret que j'ai ajouté, il me dit

Exception Delphi EOleException à $CADF91D
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
16 déc. 2008 à 21:27
Ce n'est pas une valeur de test mais un message d'erreur..
(tu ne peux hélas pas en tirer grand chose..)

le point d'arrêt doit être mis sur l'une de ces lignes :

Query1.ParamByName('param').AsString := '#' + MCPARAM.Date + '#';
Query1.Open;

il faut voir ce que delphi prend comme valeur dans :
Query1.ParamByName('param').AsString

cantador
0
Rejoignez-nous