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

DB2 Discussion :

camparaison de date


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut camparaison de date
    Bonjour,


    table: si4qtcmp contient les champs id_camp, dt_camp et lib_camp

    id_camp!! dt_dem!! lib_camp

    2548 !! 2010-05-28 10:06:24.19 !! demande de relevé 28-05-2010
    ... ... ...

    je souhaite extraire les colonnes dt_dem et lib_camp dont les conditions sont les suivantes:

    1) dt_dem > dt_dem + 42 jours

    2) lib_ camp commençant par demande


    pour 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selelct lib_camp, dt_camp from si4qtcmp where lib_camp like 'demande%'
    pour 1) j ne sais pas trop comment faire:

    dt_dem est de type timestamp
    comment additionner déjà dt_dem + 42 jours ?
    dois je convertir ensuite, et en quoi?

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Marrant mais quand je me pose une question sur les dates en MySQL je tape dans Google les mots clés "date" et "mysql" et j'aboutis sur la page suivante Fonctions de dates et d'heures.

    Après je passe un peu de temps à parcourir les différentes méthodes proposées histoire d'en découvrir de nouvelles et entre autre celle permettant les opérations arithmétiques sur les dates. Et puis comme aujourd'hui c'est vendredi je te laisse chercher la méthode adéquate

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut
    Merci pour l'aide, j'ai pu faire la comparaison avec current timestamp

    sinon avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select cmv.VIN from £SI4TELM.SI4QTCMV as cmv
    where cmv.ID_CAMP IN 
    (select cmp.ID_camp from £SI4TELM.SI4QTCMP as cmp where cmp.LIB_CAMP NOT LIKE '%Demande de releve%' AND cmp.DERNIER_COP='1' and cmp.STA_CAMP ='ENC') 
    and ID_CAMP IN (select cmp.ID_camp from £SI4TELM.SI4QTCMP where cmp.LIB_CAMP like '%Demande de releve%)
     and current timestamp - cmv.DAT_COP > 43
    and cmv.DERNIER_COP='1'
    and cmv.id_camp = cmp.id_camp
    j'ai le message d'erreur:
    com.ibm.db2.jcc.t2zos.bb: [IBM/DB2][T2zos/2.11.67]T2zosPreparedStatement.readPrepareDescribeOutput_:nativePrepareInto:1437B2 engine SQL error, SQLCODE = -104, SQLSTATE = 42601, error tokens = 1 UNION EXCEP
    quelqu'un peut me dire de quoi il s'agit merci pour le retour

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Un message d'erreur d'IBM DB2 dans un forum MySQL ?

    Quel SGBD utilises-tu ?

    Sinon regarde la coloration syntaxique de la requête : il manque une apostrophe à la fin de la valeur du second LIKE.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut
    Bonjour

    Current_timestamp ne donne pas le résultat attendu


    dt_cop est de type timestamp

    je veux : date du jour > dt_cop + 42

    (getdate() - dt_cop > 42 ) ne fonctionne pas car il connait pas la fonction getdate()

    quelle est la fonction à utiliser pour récupérer la date du jour (de type timestamp ) en DB2 SVP

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT
    cmv.vin, bta.MSISDN, sta_reqt, cmv.id_camp, lib_camp, id_camp_ref, cmp.dt_dem, cmp.dt_ferm, sta_camp from PBQOPC.SI4Qtcmv as cmv, PBQOPC.SI4Qtbta as bta, PBQOPC.SI4Qtcmp as cmp WHERE
    cmv.vin in (select vin from PBQOPC.SI4Qtcmv where id_camp in (select id_camp from PBQOPC.SI4Qtcmp where id_camp_ref != 124 and sta_camp = 'ENC'))
    and cmv.vin in (select vin from PBQOPC.SI4Qtcmv where id_camp in (select id_camp from PBQOPC.SI4Qtcmp where id_camp_ref = 124 and (TO_DAYS(NOW()) -TO_DAYS(dt_dem) )> 42
    ))
    And cmv.dernier_cop = '1'
    AND cmv.vin = bta.vin
    AND cmv.id_camp = cmp.id_camp
    AND bta.DERNIER_COP='1'
    AND cmp.DERNIER_COP='1'

    (TO_DAYS(NOW()) -TO_DAYS(dt_dem) )> 42 ne fonctionne pas aussi

    Erreur suivante : com.ibm.db2.jcc.t2zos.bb: [IBM/DB2][T2zos/2.11.67]T2zosPreparedStatement.readPrepareDescribeOutput_:nativePrepareInto:1437B2 engine SQL error, SQLCODE = -440, SQLSTATE = 42884, error tokens = FUNCTION;TO_DAYS

    Quelqu'un peut m'aider SVP

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    current_date ou current date (sans l'underscore) > date(dt_cop) + 42 Days
    qui est la syntaxe DB2, mais résultat non garanti.

Discussions similaires

  1. Réponses: 11
    Dernier message: 23/07/2002, 14h33
  2. soustraire deux dates ?
    Par joejoe dans le forum SQL
    Réponses: 2
    Dernier message: 19/07/2002, 15h53
  3. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21
  4. Réponses: 3
    Dernier message: 06/05/2002, 18h24
  5. Réponses: 3
    Dernier message: 19/04/2002, 00h11

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