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 :

requete par rapport au mois


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut requete par rapport au mois
    salut tout le monde :D

    je veut créer une requete avec comme condition toutes les dates qui ont comme mois 01 mais ca fait une erreur.

    quelqu'un peut m'aider

    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select num_wor from works WHERE date_wor=(DATE '2001-01-01' +(to_date(01, 'MM')))
                                                                *
    ERREUR à la ligne 1 :
    ORA-00975: l'opération DATE + DATE n'est pas autorisée

  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
    encore une fois : L'OPERATION D'ADDITION ENTRE DEUX DATES N'EXISTE PAS

    Merci de lire tes messages privés

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    j'ai essayé ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select num_wor from works WHERE to_char(to_date(date_wor, 'MM'))=to_date(01, 'MM')
                                                    *
    ERREUR à la ligne 1 :
    ORA-01830: Le modèle  du format de date se termine avant la conversion de la
    chaîne d'entrée entière
    et


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select num_wor from works WHERE to_char(to_date(date_wor, 'MM'))=01
                                                    *
    ERREUR à la ligne 1 :
    ORA-01830: Le modèle  du format de date se termine avant la conversion de la
    chaîne d'entrée entière
    et ca marche pas:(

    quelqu'un peut m'aider?

  4. #4
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    comme c'etait déja précisé par Fred_D qu'on peut pas faire l'addition de dates.

    Par exemple c'est quoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    le 11/01/2006 + le 11/01/2006 ?
    Ca donne Rien.

  5. #5
    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
    Tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select num_wor 
    from works 
    WHERE to_char(date_wor, 'MM')='01';
    (à condition que date_wor soit de type date)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    non date_wor est de type varchar2

  7. #7
    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
    Dans ce cas :
    - soit tu sais où sont les mois et tu peux les retrouver en faisant un substr.
    - soit tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select num_wor 
    from works 
    WHERE to_char(to_date (date_wor, 'DD/MM/RRRR'), 'MM')='01';
    (remplace 'DD/MM/RRRR' par le format de ta date dans date_wor)

    [EDIT]
    C'est une drôle d'idée de stocker une date dans une colonne varchar2
    [/EDIT]

  8. #8
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Des opérations sur des dates stockées dans des colonnes Varchar....
    Pfffff............

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    esqu'on peut faire de requets suivant le numero de la semaine 1 à 53?

    j'ai essayé sa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL> select num_wor 
      2  from works 
      3  WHERE to_char(to_date (date_wor, 'MM/DD/YY'), 'WW')='01';
     
    aucune ligne sélectionnée
     
    SQL> select num_wor 
      2  from works 
      3  WHERE to_char(to_date (date_wor, 'WW'), 'WW')='01';
    WHERE to_char(to_date (date_wor, 'WW'), 'WW')='01'
                                     *
    ERREUR à la ligne 3 :
    ORA-01820: le code du format ne peut pas apparaître dans le format d'entrée de
    la date
    mais ca marche pas

  10. #10
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    ce n'est pas WW mais c'est MM dans la requête

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    non, pour les mois je sait que c'est MM.

    maintenant je parle dans le cas d'une semaine (week) WW
    es que c'est possible?

  12. #12
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    WW : le numéro de la semaine dans une année
    W : le numéro de la semaine dans un mois

  13. #13
    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
    oui, la première requête que tu as tapée est correcte. Peut-être n'as tu aucune donnée pour la première semaine de l'année.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    trés bien

    mais données correspondaient a la semaine 02

    merci

  15. #15
    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
    merci de décocher : "Désactiver le BBCode dans ce message" dans ton profile

  16. #16
    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
    Citation Envoyé par bouyao
    WW : le numéro de la semaine dans une année
    W : le numéro de la semaine dans un mois
    Attention à la différence entre WW et IW (qui est le standard ISO 8601 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT to_char(to_date('31/12/2006', 'DD/MM/YYYY'), 'WW') as Beurk, 
           to_char(to_date('31/12/2006', 'DD/MM/YYYY'), 'IW') as ISO FROM dual :
     
    BEURK   ISO
    53      52
    encore plus parlant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT to_char(to_date('01/01/2006', 'DD/MM/YYYY'), 'WW-YYYY') AS Beurk, 
           to_char(to_date('01/01/2006', 'DD/MM/YYYY'), 'IW-YYYY') AS demiiso,
           to_char(to_date('01/01/2006', 'DD/MM/YYYY'), 'IW-IYYY') AS iso
    FROM dual
     
    BEURK    DEMIISO   ISO  
    01-2006  52-2006   52-2005

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/02/2014, 10h54
  2. Réponses: 5
    Dernier message: 24/08/2009, 08h14
  3. Réponses: 2
    Dernier message: 05/06/2009, 16h01
  4. requete par rapport a une date et un id distinct
    Par alexkickstand dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/05/2007, 15h40

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