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 :

Utilisation Like dans colonne type Date


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Par défaut Utilisation Like dans colonne type Date
    Bonjour

    A l’aide de Adoquery comment quel est la bonne instruction de balayer une date entre deux dates différentes

    J’ai utilisé un between et Like mais cette dernière ne fonctionne pas dans la colonne de type date ci-dessous le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Query1.SQL.Clear;
    Query1.SQL.Add('Select *');
    Query1.SQL.Add('From  Table_Name');
    Query1.SQL.Add('Where  (Cl3 between :D1 and :D2)');
    Query1.SQL.Add('and Cl3 like D3%');
    Query1.Params.ParamByName('D1').AsDate:=DateTimePicker1.Date;
    Query1.Params.ParamByName('D2').AsDate:=DateTimePicker2.Date;
    //Query1.Params.ParamByName('D3').AsString:='15/';
    Query1.Open;

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    c'est tout à fait normal.

    LIKE est un opérateur qui travaille sur des VARCHAR. Or le champs DATE est stocké sous une valeur réelle. Donc cela n'a pas de sens de faire un LIKE sur un champs DATE

  3. #3
    Membre éclairé
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Par défaut
    merci dehorter olivier

    est ce qu'il y a un moyen de trouver les dates précisent dans cette intervalle ?

  4. #4
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    Il faut utiliser les mêmes opérateurs que pour les nombres i.e >, < ou bien BETWEEN.

    Après pour utiliser une partie de la date, les fonctions dépendantes du SGBD utilisé. Ainsi pour FIREBIRD, on utilise EXTRACT(DAY FROM "la_date").

    Regardes les fonctions gérant les dates de ton SGBD.

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    c'est tout à fait normal.
    LIKE est un opérateur qui travaille sur des VARCHAR. Or le champs DATE est stocké sous une valeur réelle. Donc cela n'a pas de sens de faire un LIKE sur un champs DATE
    louay02 utilise like pour un champ de type String il n'y a pas de Date dans cette condition...

    Citation Envoyé par dehorter olivier Voir le message
    Il faut utiliser les mêmes opérateurs que pour les nombres i.e >, < ou bien BETWEEN.
    .
    Ok pour Between mais pas du tout d'acord pour les > et < tu oublis que les champs date sont en anglais généralement dans une base !!!

    louay02 : Ton adoquery est bien paramétré mais tu doit avoir un probleme de Time ou plutot DateTime si ton champ date est de type jj/mm/aaaa et que tu utilise datetimepicker tu vas ajouter les heures !!!

    Utilise un format lié à celui de ton champs Date pour Date et pas Date pour DateTime.

    Sinon ton utilisation est conforme.

    Merci d'indiqueé si tu utilise SQL ou Access comme base, car le Like c'est % en SQL et * en MDB

    a+

    [EDIT]
    Oupss, j'avais pas vue le cl3 2 fois dans la requete... et là effectivement je rejoint les dire de olivier...

    Que cherche tu à faire exactement sur les dates louay02 ?

    [EDIT 2] décidemment...

    Dans ton AdoQuery tu devrait avoir normalement cela
    Parameters.ParamByName('').Value
    au lieu de
    Params.ParamByName('').AsDate

    ????

  6. #6
    Membre éclairé
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Par défaut
    Merci pour vous dehorter olivier,BuzzLeclaire


    @ BuzzLeclaire

    Citation Envoyé par BuzzLeclaire Voir le message
    Que cherche tu à faire exactement sur les dates louay02 ?
    Je cherche une date pricése dans un intervalle de dates Ex :

    Cherche uniquement les dates commence par : 15/mm/aaaa dans intervalle de 01/01/2010 –01/09/2011

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dojo] Utiliser like dans une requete PHP
    Par moukit233 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 14/09/2009, 17h40
  2. Insérer données dans colonne type Image
    Par cyrano_de_bergerac dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 24/08/2009, 18h43
  3. [Oracle] insertion heure dans colonne type date
    Par erox44 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/04/2008, 22h03
  4. [sql2k] colonne type date
    Par Hydre dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/03/2007, 10h52
  5. [MySQL] Utilisation et affichage du type "date".
    Par ox@na dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/09/2006, 20h45

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