Comparaison entre 2 date sur sql [Résolu]

sharifcrd 37 Messages postés lundi 23 août 2010Date d'inscription 18 avril 2014 Dernière intervention - 30 août 2010 à 15:46 - Dernière réponse : sharifcrd 37 Messages postés lundi 23 août 2010Date d'inscription 18 avril 2014 Dernière intervention
- 3 sept. 2010 à 10:19
sharif
Select *
From "E:\MAINTENANCE\DataBase\Capteur.dbf"
Where REPARE_LE > '01/02/2000' AND REPARE_LE < '28/03/2001'

en executant cette commande DELPHI m'affiche un mesdsage d'erreur
'TYPE MISMATCH IN EXPRESSION'
par contre si je change les dates ca marche : exemple
Select *
From "E:\MAINTENANCE\DataBase\Capteur.dbf"
Where REPARE_LE > '01/02/2000' AND REPARE_LE < '28/03/2005'
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_yanb 260 Messages postés lundi 27 octobre 2003Date d'inscription 4 mars 2016 Dernière intervention - 3 sept. 2010 à 00:13
3
Merci
Salut,
type
    ODBCDateTimeFormats = ( FormatDate, FormatHeure, FormatDateHeure);

//Fonction pour mettre date et heure au format sql
function DateTimeToODBCDatetime(DateTime: TDateTime; Format: ODBCDateTimeFormats):string;
begin
    case Format of
        FormatDate : Result := #123' d ' +QuotedStr(FormatDateTime('yyyy-mm-dd',DateTime))+'}';
        FormatHeure: Result := #123' t ' +QuotedStr(FormatDateTime('hh:nn:ss',DateTime))+'}';
        FormatDateHeure : Result := #123' ts '+QuotedStr(FormatDateTime('yyyy-mm-dd hh:nn:ss',DateTime))+'}';
    end;
end;

procedure ...
begin
    ...
    ADOQuery1.Close;
    ADOQuery1.SQL.Text:='SELECT Table.DJourn FROM Table WHERE (DJourn > '+DateTimeToODBCDatetime(StrToDateDef('31/07/2010',Now),FormatDate)+
        ' AND DJourn < '+DateTimeToODBCDatetime(StrToDateDef('01/09/2010',Now),FormatDate)+')';
    ADOQuery1.Open;
    ...
end;
Retourne les dates d'août. 

@+Yanb

Merci cs_yanb 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_yanb
sharifcrd 37 Messages postés lundi 23 août 2010Date d'inscription 18 avril 2014 Dernière intervention - 3 sept. 2010 à 10:19
0
Merci
sharif
bien recu; je te remerci infiniment
mais malhuereusement ce code ne fonctionne pas chez moi
car avec ADOQuery; delphi envoi 1 message d'erreur "missing connection or connectio string"
et avec QUERY; delphi envoi 1 message d'erreur "Invalide uses of keyword, Token: d; Line Number 1."
voici le code avec query
///////////////////////////////////////////////
procedure TForm1.Button8Click(Sender: TObject);
begin
Query1.active := false;
Query1.SQL.Clear;
Query1.SQL.Text:='SELECT * FROM "E:\MAINTENANCE\DataBase\Capteur.dbf" WHERE (REPARE_LE > '+DateTimeToODBCDatetime(StrToDateDef('11/09/2002',Now),FormatDate)+
' AND REPARE_LE < '+DateTimeToODBCDatetime(StrToDateDef('01/09/2006',Now),FormatDate)+')';
Query1.active := true;
end;
////////////////////////////////////////////

mais; veuilliez m'expliquer c qouio la diff entre query et adoquery

*******************************************************************
une autre qustion
je veut recuperer une valeur de EDIT1.TEXT et l'injecter dans une reqete
mais comment faire pour avoir les resultas de la recherche sans tenir compte des majiscule et minisculdans le edit1.text exemple
pour edit1.text= 'Bon' ou edit1.text='bon' ou edit1.text='BOn' ext..
les resultas doivent etre les meme
*************************************************************************
comment faire pour avoir une DataBase partagee sur plusieur station avec plusier application
en evitant violation d'acces
merci encore
Commenter la réponse de sharifcrd

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.