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 :

année précédente de date en cours


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut année précédente de date en cours
    Bonjour a tous,
    Je vous explique mon probleme, je suis entrain d'écrire une requete qui doit se comporter comme suit:
    si je suis à une date donnée par exemple au 31/03/2007 je dois considérer l'année précédente allant du 01/01 au 31/12 mais je ne sais pas trop quelle fonction utiliser, merci par avance pour vos indications.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ADD_MONTH(col, -12) par exemple

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Par défaut
    orafrance, pour retrouver le 01/01 de l' année précédente, au -12 du ADD_MONTHS il faut soustraire le nombre de mois de la date correspondante ca devient sioux ...

    J' aurais donc pensé à un extract de l' année de la date, sous réserve que l' on puisse réutiliser l' enregistrement d' une sous-requête ... perso je n' ai pas réussi, si quelqu' un sait positionner en variable 1 enregistrement d' une sous requête dans EXTRACT , par curiosité je suis preneur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TO_DATE(EXTRACT(YEAR FROM DATE '1998-03-07')-1||'-01-01','YYYY-MM-DD') DEBUT FROM DUAL;
    sinon TO_CHAR('31/03/2007','YYYY') pour extraire l' année et concat 01/01 et en renvoyant le tout en format date fonctionne.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT TO_DATE('01/01/'||(TO_CHAR(TO_DATE(XDAY,'DD/MM/YYYY'),'YYYY')-1),'DD/MM/YYYY') as DEBUT
    FROM (
    	SELECT '31/03/2007' as "XDAY" FROM DUAL
    );
    il y aura surement plus simple mais souhaitant quelquechose qui fonctionne la deuxième solution pourra servir en attendant mieux, je me doute que cela vous paraisse très lourd mais bon je manip plus trop en ce moment

    Au plaisir de vous lire

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Trunc est bien adapté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select trunc (sysdate, 'yyyy') from dual
     
    TRUNC(SYSDATE,'YYYY')     
    ------------------------- 
    01/01/2008 00:00:00
    Après, il est possible d'ajouter ou de soustraire ce qu'on veut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select trunc (sysdate, 'yyyy') - interval '1' year from dual
     
    TRUNC(SYSDATE,'YYYY')     
    ------------------------- 
    01/01/2007 00:00:00

Discussions similaires

  1. Mois précédent et mois en cours de l'année N-1
    Par sqltrysh dans le forum SQL
    Réponses: 2
    Dernier message: 14/01/2013, 16h01
  2. [AC-2007] Liste déroulante année en cours plus années précédentes.
    Par vincent1746 dans le forum IHM
    Réponses: 2
    Dernier message: 20/05/2010, 11h52
  3. Réponses: 5
    Dernier message: 26/09/2007, 15h38
  4. [Dates] Pb récupération année, mois, date en cours
    Par Lolie11 dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2007, 16h42
  5. Ajouter une année à la date en cours
    Par marie10 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/08/2005, 11h30

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