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 :

[DB2] Encore un pb de date dans une requête DB2-AS400


Sujet :

DB2

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations forums :
    Inscription : Juin 2003
    Messages : 21
    Points : 18
    Points
    18
    Par défaut [DB2] Encore un pb de date dans une requête DB2-AS400
    Je cherche a extraire les infos d'une table qui se trouve sur AS400. Ma requête doit extraire les infos depuis le debut du mois en cours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    HAVING DATE >=
    INT (
       VARCHAR ( YEAR ( CURDATE ( ) ) ) ||
       SUBSTR ( DIGITS ( MONTH ( CURDATE ( ) ) ) , 9 , 2 ) ||
       SUBSTR ( DIGITS ( DAY ( CURDATE ( ) ) ) , 9 , 2 )
       )
    Comment indiquer 01 à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       SUBSTR ( DIGITS ( DAY ( CURDATE ( ) ) ) , 9 , 2 )
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    having month(date) = month(curdate())
    and year (date) = year(curdate())

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations forums :
    Inscription : Juin 2003
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Pb toujours
    J'ai essayé et j'ai une Erreur ADO month n'existe pas sur DB2 ......

    Je vais donc précisé:
    Je suis dans sql server 2000, et je veux extraire des données d'une table sous DB2-AS400. Le champ date sous as400 est un champ texte, ce qui doit expliquer l'erreur.

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut Re: Pb toujours
    Citation Envoyé par fdloisel
    Le champ date sous as400 est un champ texte, ce qui doit expliquer l'erreur.
    Quel format a ce champ ?

    20040907 ?
    040907 ?
    070904 ?
    07092004 ?
    ...

    Avec une chaine de caractere, ca devrait s'écrire encore plus aisément en pure traitement de chaine et extraction/comparaison des données concernant le mois et l'année

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations forums :
    Inscription : Juin 2003
    Messages : 21
    Points : 18
    Points
    18
    Par défaut format du champ
    20040907 , c'est le format de date sur as400


  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    having left(date,6)=varchar(year(curdate()))||substr(digits(month(curdate())),9,2)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations forums :
    Inscription : Juin 2003
    Messages : 21
    Points : 18
    Points
    18
    Par défaut re pb sur le left
    lorsque je lance ma requête avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    having left(date,6)=varchar(year(curdate()))||substr(digits(month(curdate())),9,2)
    j'obtiens [IBM][Pilote ODBC iSeries Access][DB2]SQL0171 - L'argument 1 de la fonction Left est incorrect

  8. #8
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,

    HAVING DATE >=
    INT (
    VARCHAR ( YEAR ( CURDATE ( ) ) ) ||
    SUBSTR ( DIGITS ( MONTH ( CURDATE ( ) ) ) , 9 , 2 ) || '01'
    )

    devrait suffir !

    sinon j'essaierai

    HAVING DATE >=
    INT (
    VARCHAR ( YEAR ( CURDATE ( ) ) ) ||
    SUBSTR ( DIGITS ( MONTH ( CURDATE ( ) ) ) , 9 , 2 ) ||
    VARCHAR('01)'
    )


    @+

Discussions similaires

  1. [VB6] Comparaison de deux dates dans une requête
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/06/2006, 19h45
  2. Comment comparé une date dans une requête?
    Par ghan77 dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/04/2006, 10h22
  3. Constante Date dans une requête SQL
    Par tarbala dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 25/04/2006, 16h24
  4. [ADO] Passage de paramètre de type Date dans une requête
    Par e-ric dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/01/2006, 12h36
  5. Date dans une requête
    Par fdloisel dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/09/2004, 17h14

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