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 :

[SQL Date] Calendrier hebdomadaire


Sujet :

Oracle

  1. #1
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut [SQL Date] Calendrier hebdomadaire
    bonjour,

    voila mon petit problème

    je souhaiterai faire une requete qui me liste les jours J à J+7.

    le retour doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    23/11/2005
    24/11/2005
    25/11/2005
    26/11/2005
    27/11/2005
    28/11/2005
    29/11/2005
    30/11/2005
    ...
    j'ai fait une requete mais 2 problèmes persistes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    select TO_CHAR(SYSDATE+00,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+01,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+02,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+03,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+04,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+05,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+06,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+07,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+08,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+09,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+10,'DD/MM/YYYY') DF FROM DUAL UNION
        select TO_CHAR(SYSDATE+11,'DD/MM/YYYY') DF FROM DUAL
    ...
    la requete est longue !? je ne trouve pas cela très propre mais plus embettant les dates ne sont pas triés !!

    exemple de sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    DF
    ----------
    01/12/2005
    02/12/2005
    03/12/2005
    04/12/2005
    05/12/2005
    06/12/2005
    07/12/2005
    23/11/2005
    24/11/2005
    25/11/2005
    26/11/2005
    27/11/2005
    28/11/2005
    29/11/2005
    30/11/2005
    le 1 dec. apparait en tete de liste. comment pourrait je faire une requete plus propre me fournissant une liste de date trié ?

    merci d'avance.

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Si tu es en version 9i (et encore pas toutes) tu peux utiliser une astuce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TO_CHAR (SYSDATE + (ROWNUM -1), 'DD/MM/YYYY')
    FROM DUAL
    CONNECT BY ROWNUM < 8
    Je pense que tu auras les dates naturellement triées.

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Ma solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    SQL> set serveroutput on   
    SQL> begin 
      2  for i in 0..7 
      3  loop 
      4  dbms_output.put_line (  sysdate + i ) ; 
      5  end loop ; 
      6  end ; 
      7  /
    23/11/05
    24/11/05
    25/11/05
    26/11/05
    27/11/05
    28/11/05
    29/11/05
    30/11/05
     
    Procédure PL/SQL terminée avec succès.
     
    SQL>
    Désolé mais je suis pas à l'aise en dév

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    En faisant quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SQL> select sysdate + rnum - 1
      2  from (select rownum rnum from user_objects where rownum <= 15)
      3  order by 1;
     
    SYSDATE+R
    ---------
    24-NOV-05
    25-NOV-05
    26-NOV-05
    27-NOV-05
    28-NOV-05
    29-NOV-05
    30-NOV-05
    01-DEC-05
    02-DEC-05
    03-DEC-05
    04-DEC-05
    05-DEC-05
    06-DEC-05
    07-DEC-05
    08-DEC-05

  5. #5
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    merci a tous pour vos reponses rapides !!

    j'ai opter pour la dernière solution !! merci plaineR !!

    en effet la version PL/SQL est très bien mais non supporté via OCI8 (via PHP)

    ma version d'oracle est une 8i donc la solution de Médiat n'est pas exploitable.

    mais vos réponses ont été très formateur !!

    merci !!

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

Discussions similaires

  1. Erreur Conception ou erreur SQL ? (><=Date()?)
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/09/2005, 23h03
  2. [Dates] Calendrier sous format 20000101
    Par nunor dans le forum Langage
    Réponses: 9
    Dernier message: 10/11/2004, 00h03
  3. [java.sql.Date] format compatible tout sgbd ?
    Par djskyz dans le forum JDBC
    Réponses: 8
    Dernier message: 15/09/2004, 11h28
  4. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 11h38
  5. SQL Date
    Par hamed dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/11/2003, 15h18

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