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

Langage SQL Discussion :

Différence entre deux dates composées de 3 champs


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut Différence entre deux dates composées de 3 champs
    Bonjour à tous,

    Voilà, j'aimerai calculer une différence en nombre de jours entre deux dates. Jusque là pas de soucis je voulais utiliser DateDiff. Sauf que, mes dates sont enfaites composées de 3 champs : le jour , le mois , l'année ... en effet pour à l'affichage avoir une date au format JJ/MM/AA, je dois faire un Select sur 3 champs et les concatener...

    Voici une partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select CASE LENGTH(OEJCRE) WHEN 1 then'0'||OEJCRE WHEN 2 then CAST(OEJCRE as varchar2(2)) END
    ||'/'||
    CASE LENGTH(OEMCRE) WHEN 1 then'0'||OEMCRE WHEN 2 then CAST(OEMCRE as varchar2(2)) END
    ||'/'||
    OEACRE , 'où OEJCRE = le jour / OEMCRE  = mois / OEACRE = année'
    CASE LENGTH(OEJLIF) WHEN 1 then'0'||OEJLIF WHEN 2 then CAST(OEJLIF as varchar2(2)) END
    ||'/'||
    CASE LENGTH(OEMLIF) WHEN 1 then'0'||OEMLIF WHEN 2 then CAST(OEMLIF as varchar2(2)) END
    ||'/'||
    OEALIF , 'idem ici '
    Je souhaite calculer le retard entre ces dates, mais je ne vois vraiment pas comment faire étant donné que la date n'arrive pas d'un seul "bloc"...

    Quelqu'un peut-il m'aider...?

    Merci à vous

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Pour votre souci, transformez vos 3 colonnes en une seule de type date avec CAST ensuite vous pourrez utiliser les fonctions de date normalement
    Sous réserve bien sur que les 3 colonnes composant la date soient fiables, ce qui est loin d'être gagné (genre 31 février ou autres bêtises)

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour,

    Pour votre souci, transformez vos 3 colonnes en une seule de type date avec CAST ensuite vous pourrez utiliser les fonctions de date normalement
    Sous réserve bien sur que les 3 colonnes composant la date soient fiables, ce qui est loin d'être gagné (genre 31 février ou autres bêtises)

    Bonjour @escartefigue , merci pour votre réponse !

    Je dois donc laissé ma concaténation et transformer le tout en format Date avec CAST ?

    Merci à vous

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST((ColAAAA!!'-'!!ColMM!!'-'!!ColJJ) AS DATE)
    Encore une fois sous réserve que la concaténation de ces 3 colonnes constitue une date valide

  5. #5
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST((ColAAAA!!'-'!!ColMM!!'-'!!ColJJ) AS DATE)
    Encore une fois sous réserve que la concaténation de ces 3 colonnes constitue une date valide
    Super ça marche merci beaucoup !! Du coup, il existe un moyen d'enlever l'heure qui se rajoute ? le 00:00 ?

    Je vais essayer de faire ma différence entre les dates voir si ça marche avec DATEDIFF !

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/07/2006, 14h04
  2. Nombre de minutes de différence entre deux dates
    Par Oberown dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/05/2006, 15h41
  3. Différence entre deux dates
    Par Azharis dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2006, 10h58
  4. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 12h24
  5. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34

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