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 :

BETWEEN et ajout de jours à une date


Sujet :

SQL Oracle

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut BETWEEN et ajout de jours à une date
    Bonjour,

    le code suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    act_sag.daexec BETWEEN dos.daentr AND dos.dasor
    mais je voudrais avoir un intervalle de temps plus grand. J'y ai donc ajjouté SUBDATE et ADDDATE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    act_sag.daexec BETWEEN SUBDATE(dos.daentr, INTERVAL 3 DAY) AND ADDDATE(dos.dasor, INTERVAL 3 DAY)
    Et j'ai le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL Error [907] [42000]: ORA-00907: missing right parenthesis
      ORA-00907: missing right parenthesis
    Il y a pourtant le bon nombre de parenthèses !
    Voyez-vous d'où vient le problème ?
    Christophe

    Pensez à mettre quand c'est le cas.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Je ne trouve pas de référence aux fonctions SUBDATE et ADDDATE dans ma documentation Oracle (11g)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    J'ai trouvé ces fonctions sur oracle.com, mais il y avait une petite référence à MySQL que je n'ai pas vu !
    Les messages d'erreur Oracle ne se sont pas améliorés...

    J'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (dos.daentr - interval '3' day) AND (dos.dasor + interval '3' day)
    puis par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (dos.daentr - 3) AND (dos.dasor + 3)
    A chaque fois la requête se lance mais l'exécution donne à un moment l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL Error [1722] [42000]: ORA-01722: invalid number
      ORA-01722: invalid number
    Christophe

    Pensez à mettre quand c'est le cas.

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Date, Timestamp et Interval sont des types des données différentes. Faite d'abord un point sur cette problématique ainsi que les fonctions disponibles pour chaque type ainsi que celles des conversions entre ces types.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Merci.
    L'erreur "invalid number" provient d'un autre endroit.
    Christophe

    Pensez à mettre quand c'est le cas.

Discussions similaires

  1. ajouter des jours à une date
    Par babalastar dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/02/2007, 11h39
  2. [HQL] Ajouter des jours à une date
    Par loulou dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/01/2007, 11h22
  3. Ajouter un jour à une date
    Par loudo dans le forum Oracle
    Réponses: 13
    Dernier message: 10/07/2006, 12h06
  4. [MySQL] ajout de jour à une date
    Par mohican13 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/03/2006, 17h39

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