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

Requêtes MySQL Discussion :

Calcul de temps entre deux date, hors jours fériés, heures non ouvrables, etc


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Points : 283
    Points
    283
    Par défaut Calcul de temps entre deux date, hors jours fériés, heures non ouvrables, etc
    Bonjour,

    Je ne maitrise pas du tout MySQL et on me demande de créer une requête calculant le temps entre deux dates, hors jours fériés, hors heures non ouvrables, hors week-end, etc....
    J'aurais besoin de conseils pour la construction de cette requête.

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il te faut modéliser un calendrier. Tu auras toutes les instructions chez SQLPro.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    461
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 461
    Points : 283
    Points
    283
    Par défaut
    Merci CinePhil.
    J'ai lu l'article de SQLPro. Par contre, l'exemple et les scripts fournit sont écrit pour SQL Server. La notion de DOMAIN n'existe pas sur MySQL.
    Je vais continuer mes recherches.
    @ +

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    La création des DOMAIN n'est pas fondamentale, d'ailleurs, la première requête donne une contrainte CHECK qui n'est pas implémentée par MySQL, hélas !

    Comme les DOMAIN ne seront pas créés, il te faudra remplacer ces DOMAIN utilisés dans les autres requêtes par le type de chaque DOMAIN.

    Par exemple, le premier domaine est défini ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE DOMAIN D_PLN_ANNEE SMALLINT
    CONSTRAINT CKD_ANNEE CHECK (VALUE BETWEEN 1 AND 9999)
    ;
    Le script de création de la première table est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /* ============================================================ */
    /*   Table : TR_PLN_ANNEE_PAN                                   */
    /* ============================================================ */
    create table TR_PLN_ANNEE_PAN
    (
        PAN_ID              T_D_PLN_ANNEE         not null,
        PAN_BISEXTILE       T_D_PLN_BOOLEEN       not null,
        constraint PK_TR_PLN_ANNEE_PAN primary key (PAN_ID)
    )
    ;
    J'ai d'ailleurs l'impression qu'il y a une erreur puisque le domaine ne commence pas par un T !

    Il faudrait donc dans le script de la première table remplacer T_D_PLN_ANNEE par son type standard, c'est à dire SMALLINT, ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    create table TR_PLN_ANNEE_PAN
    (
        PAN_ID              SMALLINT         not null,
        PAN_BISEXTILE       BOOLEAN       not null,
        constraint PK_TR_PLN_ANNEE_PAN primary key (PAN_ID)
    )
    A noter que le mot-clé BOOLEAN est accepté mais que MySQL va en fait appliquer le type TINYINT(1), c'est à dire un entier codé sur 1 bit qui ne peut donc prendre que les valeurs 0 ou 1 ; c'est bien un booléen.

    Il te faut adapter tout le script de création des tables de la même manière.

    Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Calcul du temps entre deux dates
    Par TheBleedz dans le forum Langage
    Réponses: 3
    Dernier message: 05/01/2014, 23h19
  2. [AC-2010] Calculer la différence entre deux dates, en jour, dans une requête
    Par Just-Soft dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/10/2010, 02h19
  3. Réponses: 4
    Dernier message: 21/11/2008, 10h54
  4. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 13h50

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