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

SSIS Discussion :

[SSIS] [2K8] Duree ecoulee entre 2 dates


Sujet :

SSIS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [SSIS] [2K8] Duree ecoulee entre 2 dates
    Bonjour,
    Je souhaite obtenir le nombre de seconde écoulé entre deux Temps :
    Ma source un fichier plat. 3 champs : DateAppel/DebutAppel/FinAppel.
    J'ai utilisé comme composant de transformation une colonne dérivée et comme expression : DATEDIFF("ss",DebutAppel,FinAppel).
    Mon soucis, il y a des appels émis a 23h59 et prennent fin a 00h05, ce qui donne un résultat négatif. je souhaite faire un contrôle si FinAppel < DebutAppel, Ajouter 24h a AppelFin avec la fonction DATEADD("h", 24, FinAppel)
    Mon problème je suis débutant avec SSIS et pas a l'aise avec les scripts. Avez vous une méthode a me proposer ?
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 48
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Une concatenation de la date et l'heure et puis un datediff, ça marche trés bien.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci,
    le Hic, c'est qu'il n'y a pas de date pour la fin de communication, je ne pourrai que faire une concaténation pour l'heure de début de communication.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 48
    Points : 56
    Points
    56
    Par défaut
    Tu peux toujours utiliser la concatenation en faisant un contrôle si FinAppel < DebutAppel (comme tu l'as cité plus haut) tu concatenes dateadd(M,1,DateDebut) avec l'heure de fin sinon DateDebut avec HeureFin.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    OK,merci pour ton soutien.
    J'avais un problème de manipulation des expressions dans l'outil "Colonne dérivée".
    Mon procédé pour celui qui en aura besoin. Un bricolage de débutant. Une optimisation sera la bienvenue

    - Concaténation : Date a HeureDebut Et HeureFin puis conversion en DT_DATE puis en DT_DBTIMESTAMP dans l'outil de transformation "colonne dérivée":
    DateHeureDebutConv---> (DT_DBTIMESTAMP)(DT_DATE)(Date + " " + HeureDebut)
    DateHeureFinConv -----> (DT_DBTIMESTAMP)(DT_DATE)(Date + " " + HeureFin)

    - Je rajout un 2eme outil de "Colonne colonne dérivée" (je fais +1 jour Si DateHeureDebutConv < DateHeureFinConv

    Expression :
    DateHeurFinVerif--->(DateHeureDebutConv < DateHeureFinConv ? DATEADD("dd",00,DateHeureFinConv) : DATEADD("dd",1,DateHeureFinConv))

    - Je calcul le Temps écoule en seconde dans une autre colonne dérivée :
    TempsMis----> DATEDIFF("ss",DateHeureDebutConv,DateHeurFinVerif)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 48
    Points : 56
    Points
    56
    Par défaut
    Je pense que tu as inversé la condition, c'est plutôt quand DateHeureDebutConv > DateHeureFinConv qu'il faut rajouter 1 jour et non pas DateHeureDebutConv < DateHeureFinConv.

    Et DATEADD("dd",00,DateHeureFinConv) revient au même que d'écrire DateHeureFinConv.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je pense que c'est pareil. L'opérateur est : «boolean_expression» ? «when_true» : «when_false»

    Alors
    (DateHeureDebutConv < DateHeureFinConv ? DATEADD("dd",00,DateHeureFinConv) : DATEADD("dd",1,DateHeureFinConv))

    equivaut a :


    (DateHeureDebutConv > DateHeureFinConv ? DATEADD("dd",1,DateHeureFinConv) : DATEADD("dd",00,DateHeureFinConv))

    Mais c'est vite compréhensif avec la 2eme expression!!!
    Merci

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 48
    Points : 56
    Points
    56
    Par défaut
    Effectivement, c'est pareil, j'ai pas fait attention.

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

Discussions similaires

  1. Durée - Intervalle entre 2 dates
    Par lilou77 dans le forum SQL
    Réponses: 5
    Dernier message: 27/03/2014, 10h57
  2. [Date] Fonction de calcul de durée entre 2 dates
    Par jesus144 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/01/2006, 16h36
  3. Réponses: 6
    Dernier message: 22/12/2005, 07h59
  4. Durée en jour, minute et heure entre 2 dates
    Par nora_ora dans le forum Oracle
    Réponses: 7
    Dernier message: 10/08/2005, 22h47
  5. Calculer une duree entre 2 dates
    Par d.w.d dans le forum C++
    Réponses: 7
    Dernier message: 02/03/2005, 22h39

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