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

SQL Oracle Discussion :

Calculer un intervalle entre 2 dates


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2010
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 376
    Par défaut Calculer un intervalle entre 2 dates
    Bonjour,

    Je fais de nouveau appel à de bonne âmes pour me dépêtrer d'une requête que je pensais facile à savoir, déterminer le nombre d'année entre les dates contenues dans une colonne et la date de l'ordinateur.

    J'avais noté une fois quelque chose dans ce genre qui semblait avoir fonctionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select to_char(sysdate, 'yyyy') - table.annee_naiss, 
    table.colonne_1
    from table, dual;

    Mais après avoir essayé plusieurs fois dans la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select table1.données1,
    table2.données1,  
    table2.données2,
    table2.date_naiss
    from table1 left join table2 on table1.données1 = table2.données1
    where...
    Rien ne fonctionne.

    Si quelqu'un pouvait m'orienter...merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 402
    Par défaut
    Bonjour,
    Tu tentes de soustraire table.annee_naiss (quel type ?) à une chaine… Ca ne peut pas fonctionner.
    Tu as la fonction year() qui extrait la date d'une chaine.
    De plus, je ne vois pas trop pourquoi tu utilises la pseudo-table DUAL.
    Normalement ceci devrais fonctionner:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select year(sysdate) - table.annee_naiss, 
    table.colonne_1
    from table

    Tatayo.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2010
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 376
    Par défaut
    La colonne table.annee_naiss est au format date (dd/mm/yyyy).

    J'ai essayé ton exemple mais j'obtiens le message d'erreur suivant :

    ORA-00904: "YEAR" : identificateur non valide

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 402
    Par défaut
    Effectivement, Oracle ne connait pas la fonction YEAR().
    Après une petite recherche:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT EXTRACT(year FROM sysdate)
    from...

    Tatayo.

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2010
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 376
    Par défaut
    Je viens de faire une essai et cela m'affiche bien "2019".

    Par contre, je n'arrive pas à intégrer cette fonction dans une soustraction avec ma colonne table.annee_naiss (au format date "dd/mm/yyyy").

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 402
    Par défaut
    Puisque la colonne est au format date, il faut également extraire l'année, comme pour la date actuelle !

    Tatayo.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2012, 10h05
  2. [AC-2007] Calcul Intervalle entre 2 dates
    Par arb35 dans le forum VBA Access
    Réponses: 6
    Dernier message: 21/02/2010, 12h13
  3. [VBA] Calculer la différence entre deux dates
    Par T'chab dans le forum Access
    Réponses: 13
    Dernier message: 11/05/2006, 15h12
  4. [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
  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