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 :

calcul nombre de jours avec sql


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Points : 18
    Points
    18
    Par défaut calcul nombre de jours avec sql
    Bonsoir tout le monde

    je débute un peu dans le sql mais j'ai quelques soucis comment afficher la valeur bon je m'explique

    j'ai une base de données mysql nomé client et une table user

    dans user j'ai 2 champs start_date et end_date

    je veux calculer le nombre de jours entre les deux dates et les affichés dans un label mais je ne sais pas comment m'y prendre quelqu'un peut il m'éclairer un peu merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour
    un peu de avec les mots clé mysql date function
    et http://www.tutorialspoint.com/mysql/...ction_datediff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT DATEDIFF(end_date,start_date), .... FROM ....
    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

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour
    un peu de avec les mots clé mysql date function
    et http://www.tutorialspoint.com/mysql/...ction_datediff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT DATEDIFF(end_date,start_date), .... FROM ....
    oui mais le problème n'est pas dans le sql j'ai déja trouver sur google la requete le problème c'est comment l'integrer sur delphi pour l'afficher dans un label ou bien faire apparaitre les users qui expirent dans 7 jours dans un label ou bien les afficher dans une table expiring users par example

    est ce que je dois utiliser un label ou bien un memo ou bien un dbgrid avec une autre table et afficher les users qui expirent prochainement

    j'ai déja essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    uniQuery1.close;
    uniQuery1.sql.clear;
    uniQuery1.sql.add('select datediff(start_date,end_date) from user ');
    uniQuery1.sql.add('SELECT DATEDIFF(end_date,start_date),FROM user ');
    mais apparemnt ça ne marche pas

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 857
    Points : 11 291
    Points
    11 291
    Billets dans le blog
    6
    Par défaut
    Ce serait plutôt une requête du style
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, DATEDIFF(end_date, start_date) AS A FROM user WHERE A < 8 ORDER BY A
    (si SQL permet le AS A utilisé comme ça) et un affichage où tu veux !
    Je ne sais pas ce qu'un Query permet de faire...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Ce serait plutôt une requête du style
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, DATEDIFF(end_date, start_date) AS A FROM user WHERE A < 8 ORDER BY A
    (si SQL permet le AS A utilisé comme ça) et un affichage où tu veux !
    Je ne sais pas ce qu'un Query permet de faire...
    ça ne marche toujours pas

    est ce qu'il y'aurais pas un type dans mysql comme pour d'autres moteur de base de données pour créer un calculated field ou je pourrais faire un calcul automatiquement et le mettre dans un champ nomé nombre_de_jours et aprés je ferais seulement un select statement sur les dates = a > 7 jours de la date now ? ou bien un trigger qui calcule la différence entre les date et le mets dans la table user

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ID,NOM FROM  USER WHERE DATEDIFF(end_date, start_date)<8

    je ne pense pas que
    (si SQL permet le AS A utilisé comme ça)
    l'on puisse utilisé un alias pour un test , il faut simplement mettre la formule dans le WHERE

    pour ce qui est du tri par contre , il est possible d'utiliser l'alias mais il est aussi simple de faire un order by start_date pour un ordre décroissant

    J'ai bien peur que les colonnes calculées n'existent pas avec MYSQL (selon mes lectures) , il faut passer par des triggers
    encore un peu de google

    Quant a utiliser une colonne calculée ce n'est pas très "normalisée" en général dans une table on évite d'en mettre
    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

  7. #7
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Pourquoi ne pas simplement récupérer les valeurs end_date et start_date et faire le calcul en dehors de SQL, puis afficher la variable résultante dans le memo (si on parcours toute la table) ?

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Points : 18
    Points
    18
    Par défaut
    ok merci
    je vais continuer mes tests et mes recherches et je posterai ici si je trouve un bon résultat

Discussions similaires

  1. calcul nombre de jours entre deux dates
    Par charlene44 dans le forum Langage
    Réponses: 7
    Dernier message: 21/08/2012, 14h06
  2. Calcul nombre de jours commun à 2 périodes
    Par msalque dans le forum Excel
    Réponses: 4
    Dernier message: 13/08/2007, 16h06
  3. Calcul Nombre De Jour Entre 2 Dates infopath2007
    Par syntony dans le forum InfoPath
    Réponses: 11
    Dernier message: 01/05/2007, 15h33
  4. Réponses: 3
    Dernier message: 28/10/2006, 15h47
  5. Réponses: 4
    Dernier message: 19/05/2006, 23h14

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