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

Approche théorique du décisionnel Discussion :

Gestion des DATE/DATETIME?


Sujet :

Approche théorique du décisionnel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Gestion des DATE/DATETIME?
    Bonjour à tous,

    Pour la gestion des dates, j'utilise un table qui me permet, grâce à une jointure avec un autre champ de type DATE, l'extraction année, mois, jour, quarter... de mes dates.

    Actuellement je travaille sur des tables qui contiennent des champs de format DATETIME. une jointure entre des champs de type DATE et DATETIME ne me renvoie aucun enregistrement, ce qui est normal.

    J'ai mis en place deux solutions:

    1- Rajouter dans mes tables un champ de type DATE (extraction de la date de mon champs DATETIME).
    2- Rajouter dans mon table de gestion de dates, les champs "dd/MM/YYYY 00:00:00" et "dd/MM/YYYY 23:59:59" qui le permettra de faire une jointure du genre BETWEEN.

    Sachant que j'ai plusieurs dates à gérer et qu'il faudrait que mon datamart final soit compatible avec plusieurs SGBD. Quelle est la solution que vous me conseillerais d'utiliser et pourquoi?

    Merci d’avance

  2. #2
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Hello,

    je préconise la 1/ car pour la 2/ :
    - rajouter des champs avec 00:00:00 et 23:59:59 est tiré par les cheveux
    - et surtout le between dégrade les performances d'une requête

    Autres solutions :
    3/ laisser les champs et faire une jointure en extrayant la date du datetime.
    4/ modifier le champ datetime en 2 champs, date et heure

    Dans tous les cas il faut bien normer les colonnes pour savoir quel est le type de contenu rien qu'en lisant le nom. Par exemple, préfixer le nom par DATE_ ou DATH_.
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2013
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 142
    Points : 295
    Points
    295
    Par défaut Truncate
    Hello,

    J'imagine que tu utilises une table du temps dans ton datawarehouse, pour faire des jointures avec des champs DATETIME il suffit de tronquer celui-ci.

    Comme je ne connais pas ta db...

    En oracle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT trunc(champDatetime) FROM dual;
    En Mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date(champDatetime);

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Les solutions 3/ est qui est aussi celle proposé par easy_bi ne m'arrange pas vraiment, vu que mon DWH doit être compatible avec plusieurs SGBD et modifier ma requête à chaque fois c'est impossible.

    Le fait de séparer date et time ( proposition 4/) rejoint un peu ma proposition 1/. En utilisant cette solution mes champs sont dupliquer ce qui implique plus de temps lors de l’exécution de mon ETL.

    Sachant que j'ai à peu près 20 champs DATETIME sur un seul modèle avec la possibilité d'en rajouter d'autres à long terme. Pas toutes les tables seront jointes avec la table de gestion de dates.

    Pour la proposition 4/ faudra faire la transformation sur toutes mes datetimes. Pour une homogénéité de mes modèles (20 dates).

    pour la proposition 2/ Le between ne sera utilisé que sur les dates voulu. (sur 20 dates, j'en utilise une maintenant)

    D'un point de vu performance, quel est la solution la moins contraignante?

  5. #5
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    La 1/ est très bien.

    De mémoire la 4/ est préconisée par Kimball.
    Avantage : requêter facilement sur l'heure (par exemple mettre un filtre sur heure > 22h).
    Inconvénient : il faut recomposer le timestamp si on veut afficher date+heure au même endroit.
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos réponses. Je ferais une extraction de la date et time de mon datetime.

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

Discussions similaires

  1. gestion des dates dans un formulaire
    Par clement42 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 18/05/2006, 11h34
  2. [VB6]gestion des dates
    Par luckelm dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/04/2006, 20h25
  3. Application international (Gestion des dates)
    Par vsavoir dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/08/2005, 10h22
  4. Réponses: 3
    Dernier message: 13/08/2004, 18h52
  5. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01

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