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 :

Nombre de jours entre 2 dates


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Points : 185
    Points
    185
    Par défaut Nombre de jours entre 2 dates
    Bonjour,

    Base 9i.

    Je souhaiterai avoir le nombre de jour entre 2 dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select date1 - date2 from dual
    me renvoie un interval avec une syntaxe particulière
    +28 16:18:48.000000
    Comme laurent schneider le dit très bien le to_char(interval) ne fonctionne pas !!

    Comment doit-on faire pour récupérer uniquement le nombre de jours ? Extract() ? Trunc() ?

    Merci à vous.
    Boutss

  2. #2
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc(Date1) - trunc(Date2)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extract(DAY from Date1) - extract(DAY from Date2)
    où Date1 est la plus élevée
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par boutss Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select date1 - date2 from dual
    me renvoie un interval avec une syntaxe particulière
    c'est parceque date1 ou/et date2 sont des timestamps

    extract me parait parfait !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    extract(day from (date1-date2))+
    extract(hour from (date1-date2))/24+
    extract(minute from (date1-date2))/1440+
    extract(second from (date1-date2))/86400
    PS: pour le nombre de jour uniquement extract(day FROM (date1-date2))

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Yorglaa Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extract(DAY from Date1) - extract(DAY from Date2)
    ça ça se limite au dates du même mois, non?

  5. #5
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    Moi, je ferais plus simple en passant par le jour julien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select abs(to_number(to_char(date1,'J'))-to_number(to_char(date2,'J')))
    from ...;
    Philippe CEROU,

    Architecte Systèmes & Bases de données.

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par philcero Voir le message
    Moi, je ferais plus simple en passant par le jour julien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select abs(to_number(to_char(date1,'J'))-to_number(to_char(date2,'J')))
    from ...;
    je vois pas en quoi c'est plus simple que la solution de Yorglaa avec TRUNC?

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 237
    Points : 185
    Points
    185
    Par défaut Merci à tous
    Merci à tous pour vos réponses toutes plus instructives les unes que les autres !

    à part la 2ème proposition de Yorglaa...

    Et un grand respect à la maitrise incontestée et incontestable de Laurent Schneider !

    ... [Je me parle] ...
    Alors tu vois, "trunc" fonctionne, "extract" fonctionne, et même "to_char ?!
    Je le fais exprès de ne pas trouver ?? Pour ma paroisse, c'était vendredi soir.

  8. #8
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    je vois pas en quoi c'est plus simple que la solution de Yorglaa avec TRUNC?
    Je retire mon adjectif "simple" et je le remplace par "universel". Cette méthode fonctionne quel que soit le langage, la machine ou bien la planète où elle est lancée...

    Sans rire, j'avais pas l'habitude d'utiliser le TRUNC(DATE), c'est tout.

    Merci Yorglaa...

    Philippe CEROU,

    Architecte Systèmes & Bases de données.

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    parlons planète

    tout d'abord, un "jour", pour moi, c'est une rotation terrestre, donc il n'y a pas un jour entre ce soir minuit moins une et ce soir minuit, mais une 0.0007 jour !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select 
    trunc(Date1) - trunc(Date2) i1,
    extract(day from (date1-date2))+
    extract(hour from (date1-date2))/24+
    extract(minute from (date1-date2))/1440+
    extract(second from (date1-date2))/86400 i2
    from (select   timestamp '2008-05-20 00:00:00' date1, 
      timestamp '2008-05-19 23:59:00' date2  from dual);
            I1         I2
    ---------- ----------
             1 .000694444
    et puis sur notre planète on n'a pas tous la même date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select 
    trunc(Date1) - trunc(Date2) i1,
    extract(day from (date1-date2)) i2
    from (select 
      timestamp '2008-05-20 00:00:00 Pacific/Kiritimati' date1,
      timestamp '2008-05-17 23:59:59 Pacific/Niue' date2 from dual);
            I1         I2
    ---------- ----------
             3          0

  10. #10
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    ça ça se limite au dates du même mois, non?
    oui c'est juste, merci de me rectifier, j'ai été un peu vite !
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

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

Discussions similaires

  1. [MS-DOS] Compter les nombres de jours entre deux dates diffé
    Par Furius dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 19/02/2006, 14h33
  2. nombre de jours entre deux date
    Par mzt.insat dans le forum Langage
    Réponses: 13
    Dernier message: 01/02/2006, 11h34
  3. Nombre de jours entre 2 dates
    Par Delphi-ne dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/10/2005, 00h12
  4. [Dates] Nombre de jours entre deux dates
    Par cmoiscrat dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2005, 16h25
  5. calcule du nombre de jours entre 2 dates
    Par nazimb dans le forum ASP
    Réponses: 4
    Dernier message: 28/09/2004, 16h22

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