IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

requete sql sur une date


Sujet :

Bases de données Delphi

  1. #1
    Invité1
    Invité(e)
    Par défaut requete sql sur une date
    Bonjour a tous
    J’essai de faire un filtrage sur un champ ‘date’ avec une requête sql mais ça marche pas (le résultat est vide)
    Voici le code que j’utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myquery1.SQL.Add('select * from transmital where DRK = 12/01/2010');
    L’enregistrement dont la date DRK est 12/01/2010 existe bien

    des suggestions ????? j’utilise mysql comme SGBD
    merci

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Il me semble que le format de date de MySQL est yyyy-mm-dd et non dd/mm/yyyy

    Mais je pense qu'il serait plus simple d'utiliser une requêtre avec paramètres.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Mais je pense qu'il serait plus simple d'utiliser une requêtre avec paramètres.
    +1

    le mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myquery1.SQL.Text:='select * from transmital where DRK =:d'; // a noter .Text au lieu de add je ne sais pas s'il y a eu un Clear avant
    myquery1.ParamByName('D').Value:=encodedate(2010,01,12)  //ou  un TDate quelconque
    au pire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myquery1.SQl.text:='select * from transmital where DRK=2010-01-12'
    pour le format des dates voir http://mysql.developpez.com/faq/?pag...E_DATES_format
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Invité1
    Invité(e)
    Par défaut
    bonjour a tous

    Merci pour vos réponses

    le format de date de MySQL est yyyy-mm-dd et c’etait ça le probleme

    J’ai utilisé ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myquery1.SQL.Add('select * from transmital where DRK between' + quotedstr(formatdatetime('yyyy-mm-dd',datetimepicker1.date)) + 'and' +  quotedstr(formatdatetime('yyyy-mm-dd',datetimepicker2.date)) );
    Pour un filtrage entre deux dates, et ça marche

    Bonne journée

  5. #5
    Membre averti Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 392
    Points
    392
    Par défaut
    Linkin & Sergio Master : +2

    Je trouve personnellement la lecture (et l'écriture) beaucoup plus simple avec les paramètres, mais surtout tu n'as pas à te soucier pas du format de stockage de la date (dans ta base mais également dans tes datetmepickers) :

    Code exemple : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    myquery1.SQL.Text:='select * from transmital where DRK between :Di AND :Df';
    myquery1.ParamByName('Di').Value := datetimepicker1.date;
    myquery1.ParamByName('Df').Value := datetimepicker2.date;
    à comparer avec :
    Citation Envoyé par samy larson Voir le message
    le format de date de MySQL est yyyy-mm-dd et c’etait ça le probleme[...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myquery1.SQL.Add('select * from transmital where DRK between' + quotedstr(formatdatetime('yyyy-mm-dd',datetimepicker1.date)) + 'and' +  quotedstr(formatdatetime('yyyy-mm-dd',datetimepicker2.date)) );
    "Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre."
    Galilée

Discussions similaires

  1. [MySQL] requete SQL sur une partie d'un date
    Par stefano dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/09/2012, 13h40
  2. Requete SQL sur une date
    Par le_misterioso dans le forum Persistance des données
    Réponses: 1
    Dernier message: 11/05/2011, 14h36
  3. Réponses: 2
    Dernier message: 06/03/2008, 14h26
  4. [Vba-Excel] Exécuter une requete SQL sur une feuille de donnée
    Par Spacy_green dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/11/2006, 09h27
  5. Réponses: 23
    Dernier message: 19/09/2006, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo