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 :

premier et dernier jour du mois


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut premier et dernier jour du mois
    Bonjour,
    J'ai besoin de récupérer dans une base de donnée tous les champs pour tous les jours d'un certain mois.
    Ainsi par exemple je veux tout les champs correspondant au mois de mai.

    J'ai donc mis dans le programme un calendrier et l'utilisateur choisi un jour (peu importe le jour) du mois qui l'interesse.
    Je voudrais donc récuperer le premier jour et le dernier jour du mois pour pouvoir récuperer tous les champs de la BD ayant une date comprise entre ces 2 jours.

    Autre probleme. La date inscrite dans la BD est au format américain. Je dois donc transformer le premier et le dernier jour au format américain.

    Voila j'espere que vous pouvez m'aider. J'ai cherche pendant 3h cette apres midi sans trouver.

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Pourquoi ne pas simplement tester sur le mois ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci ca pourrait etre une bonne solution. Dans ce cas je pourrais récupere le mois et l'annee du calendrier. Mais comment récuperer la meme chose sur la base de donnée svp?

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Ca, ça dépend du SGBD

    Parfois le SGBD implémente la fonction MONTH (OF); sinon, il faut faire avec BETWEEN:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select....
      where ladate between ...
    en prenant comme date de fin le 31 (mais il peut y avoir un contrôle de validité par le SGBD faisant que le 02/31/2006 (format US) serait en erreur)

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci.
    Je vais essayer month of mais je pense pas que le SGBD soit assez developpe.
    Par contre il me semble que j'avais essayé de mettre le 31 (pour avril par exemple) mais que ca n'avait pas marché.

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Au fait, quel SGBD utilises-tu ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    C'est une SGBD spécial. Nommé ADS. C'est un format propriétaire pas tres utilisé.
    C'est un peu embetant pour trouver des aides dessus d'ailleurs.
    Je viens de tester month of mais il ne connait pas.
    La je bloques vraiment.

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    J'ai voulu resoudre le probleme en faisant choisir à l'utilisateur le dernier jour du mois.

    Je vous donne mon code car il ne marche toujours pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    debut_mois:=FormatDateTime('mm/"01/"yyyy',calendrier2.Date);
    fin_mois:=FormatDateTime('mm/dd/yyyy',calendrier2.date);
    principale.requete_mois.SQL.Add('and u.presence not in (''AT'',''AR'',''F'',''M'',''R'',''R/C'',''C'')');
    principale.requete_mois.SQL.Add('order by u.crewid,u.date_pos');
    Si je mets les dates en clair l'execution marche. C'est a dire si je mets:

    principale.requete_mois.SQL.Add('and u.date_pos between ''04/01/2006'' and ''04/30/2006''');

    a la place de:

    principale.requete_mois.SQL.Add('and u.date_pos between ''debut_mois'' and ''fin_mois''');

    le code marche.
    Je ne comprends pas.
    J'espere que vous pourrez m'aider svp.

  9. #9
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Ce n'est pas Month of la commande SQL mais Month

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select * from Table
    Where Month(LaDAte)=4 and Year(Ladate)=2006
    Sinon pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    principale.requete_mois.SQL.Add('and u.date_pos between ''debut_mois'' and ''fin_mois''');
    C'est normal que cela ne fonctionne pas car tu dois écrire de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    principale.requete_mois.SQL.Add('and u.date_pos between "' + 
                                           debut_mois + '" and "' + fin_mois + '"');

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup a vous 2. Ca marche avec month.
    J'avais mal lu le message de qi130.

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

Discussions similaires

  1. Le premier et dernier jour du mois dernier
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/10/2006, 19h59
  2. dernier jour du moi
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/09/2006, 14h34
  3. [Dates] Premier et dernier jour du mois
    Par Jarodd dans le forum Langage
    Réponses: 6
    Dernier message: 04/08/2006, 10h52
  4. Dernier jour du mois
    Par jane_ng dans le forum Langage
    Réponses: 13
    Dernier message: 03/08/2006, 12h43
  5. Dernier Jours du mois en cours
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/06/2006, 19h55

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