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

Langage SQL Discussion :

Manipulations des Dates


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Manipulations des Dates
    Bonjour!


    Je souhaite retirer et ajouter 3 jours à une date. Je ne trouve pas comment faire. J'ai vu qu'il existe la fonction "next_day" mais je n'ai pas trouvé d'autres solutions qui marchent.
    Merci de m'aider...

  2. #2
    Membre actif Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Points : 208
    Points
    208
    Par défaut
    quel SGBD ?

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    sur sql server il existe la commande dateadd(partie_date,nombre,date) pour rajouter un nombre de jour à une date donnée, mais je n'ai pas truvé d'équivalent pour retrancher un nombre de jours....

    datediff quant à lui ne semble être valable que pour soustraire 2 dates données.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 20
    Points : 20
    Points
    20
    Par défaut
    Dans un Select, un Procédure stockée ?

    Dans Oracle, SQL Server, MySQL ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    On travaille sur Oracle, on va tester ta fonction pour rajouter des jours.

  6. #6
    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
    il suffit de faire date - x où x est exprimé en nombre de jour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SYSDATE - 3 FROM DUAL;
    -> 10/04/04, il a bien enlevé 3 jours... c'est pas plus compliqué que ça

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 20
    Points : 20
    Points
    20
    Par défaut
    Bah à priori,

    Si t'es en SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TaVariableDate + NombreDeJours
    INTO TaVariableDate
    FROM DUAL;
    Si t'es en PL/SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaVariableDate := TaVariableDate + NombreDeJours;
    J'espère que j'ai bien compris la question...

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 882
    Points : 53 067
    Points
    53 067
    Billets dans le blog
    6
    Par défaut
    Avec SQL Server un ajout négatif est un retrait !!!

    exemple
    SELECT DATEADD(DAY, -3, CURRENT_TIMESTAMP)

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    a quoi correspond "dual"?

    Nous avons fait la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select dest_ville,pays_libel, voy_prix, voy_datedebut,voy_datefin, hot_nom 
    From voyage v, destination d,  pays p, hotel h 
    where (voy_datedebut>=’07-08-04’or (voy_datedebut<=dateadd(DAY,3,’07-08-04’)) )and
     v.dest_num=d.dest_num and
     v.hot_num=h.hot_num and 
    d.pays_num=p.pays_num ;
    Mais il ne reconnait pas dateadd.

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 20
    Points : 20
    Points
    20
    Par défaut
    Ca devrait fonctionner

    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
    22
    23
    24
    25
     
    SELECT
      dest_ville,
      pays_libel,
      voy_prix,
      voy_datedebut,
      voy_datefin,
      hot_nom 
    FROM
      voyage v,
      destination d,
      pays p,
      hotel h 
    WHERE
      (
          voy_datedebut >= '07-08-04'
        OR
         ( voy_datedebut <= TO_DATE('07-08-04','DD-MM-YY') + 3 )
      )
      AND 
        v.dest_num=d.dest_num
      AND 
        v.hot_num=h.hot_num
      AND 
        d.pays_num=p.pays_num;
    Par contre la comparaison :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    voy_datedebut >= '07-08-04'
    Ne me parait pas approprié car vous comparez un champ DATE avec une chaine de caractère, et ça peut vous amener des supprises. Essayez plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    voy_datedebut >= TO_DATE('07-08-04','DD-MM-YY')
    En espérant que ça vous aide

  11. #11
    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
    Citation Envoyé par kurtc
    a quoi correspond "dual"?
    DUAL est une pseudo table

    En fait c'est une table vide : sans ligne ni colonne qui sert juste comme support pour les requêtes SQL qui font appel à des fonctions ou variables non-basés comme SYSDATE

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    ça y est ça marche. Super merci!!!!!

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

Discussions similaires

  1. [WD9] [Débutante] Manipulation des dates
    Par Ando Nelly dans le forum WinDev
    Réponses: 2
    Dernier message: 19/04/2006, 08h24
  2. [JDBC] manipulation des dates
    Par zais_ethael dans le forum JDBC
    Réponses: 3
    Dernier message: 11/12/2005, 19h55
  3. [JDBC] manipulation des dates/heures en Java
    Par kurkLord dans le forum JDBC
    Réponses: 6
    Dernier message: 09/08/2004, 12h49
  4. [IB6][BCB5]Manipulation des dates.
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 09/04/2004, 15h33
  5. Manipuler des dates...
    Par Ti Jen-tsie dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2003, 11h46

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