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

 Oracle Discussion :

Obtenir la date de fin d'année


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 69
    Points : 65
    Points
    65
    Par défaut Obtenir la date de fin d'année
    Bonjour ,
    je suis dans une requette sql et j'aime comparer une date avec la date de fin d'anné (31-dec-XXXX) . qlq1 de vous connait comment je peux obtenir la date de fin d'anné c.a.d si on ai en 2011 je doit avoir 31-dec-2011
    MERCI

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    pourquoi pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '31/12/' || TRUNC(ladate,'YYYY')

  3. #3
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 738
    Points
    1 738
    Par défaut
    Citation Envoyé par orafrance Voir le message
    pourquoi pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '31/12/' || TRUNC(ladate,'YYYY')
    Ca va lui donner 31/12/01/01/08 et non pas 31/12/08

    C'est faisable avec par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_DATE(TO_CHAR(sysdate,'YYYY')||'1231','YYYYMMDD')

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    au temps pour moi

  5. #5
    Membre actif Avatar de DAB.cz
    Inscrit en
    Octobre 2006
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 221
    Points : 249
    Points
    249
    Par défaut
    Et pour obtenir la date de fin d'anné précédente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc (sysdate, 'YEAR') - 1
    et cette anné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    add_months (trunc (sysdate, 'YEAR') - 1, 12)
    Je crois (pas sûr) c'est plus performant que to_char et to_date.

    DAB

  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 DAB.cz Voir le message
    Je crois (pas sûr) c'est plus performant que to_char et to_date.
    je confirme !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> declare d date;
      2  begin
      3    for i in 1..1000000 loop
      4      d:=add_months (trunc (date '2000-01-01'+i, 'YEAR') - 1, 12);
      5    end loop;
      6  end;
      7  /
     
    PL/SQL procedure successfully completed.
     
    Elapsed: 00:00:02.28
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> declare d date;
      2  begin
      3    for i in 1..1000000 loop
      4      d:=TO_DATE(TO_CHAR(date '2000-01-01'+i,'YYYY')||'1231','YYYYMMDD');
      5    end loop;
      6  end;
      7  /
     
    PL/SQL procedure successfully completed.
     
    Elapsed: 00:00:07.36

  7. #7
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 738
    Points
    1 738
    Par défaut
    Bien vu

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

Discussions similaires

  1. Obtenir que le mois ou l'année d'une date.
    Par nomade333 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/09/2013, 11h11
  2. Réponses: 3
    Dernier message: 21/04/2008, 17h19
  3. Réponses: 6
    Dernier message: 25/09/2006, 15h51
  4. gestion de date de fin de mois
    Par bzh56 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/01/2005, 11h15
  5. Probleme de date avec changement d'année
    Par GrisburT dans le forum Oracle
    Réponses: 11
    Dernier message: 30/11/2004, 17h15

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