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

MS SQL Server Discussion :

Date dans une requête


Sujet :

MS SQL Server

  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 Date dans une requête
    J'extrait des données d'une base DB2 sous AS400 grâce a un Lot DTS.

    J'aimerais lui indiqué un paramètre dans ma requête qui correspond a un champ date.

    Ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select    DEP, TYP, DATE
    count(*) as NBBONS
    FROM DEBITS
    GROUP BY DEP, TYP, DATE
    HAVING (DATE = 20040830)
    J'ai remplacé 20040830 par getdate()

    Hresult Erreur inattendue ...

    Comment indiqué la date du jour

    Merci

    psour info la date sur l'as400 est un champ texte 20040830

  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 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Je ne sais pas si j'ai bien saisi. Vous faut-il envoyer une date au format AS400 ? dans ce cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HAVING DATE = convert(int, convert(varchar(10), getdate(), 112))
    car je ne suis pas sûr que la syntax suivante fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HAVING DATE = convert(int, getdate(), 112)

  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 Toujours Hresult
    J'ai modifié le code de mon lot, et j'obtiens un Hresult of 0x80040e14(....)returned

    Erreur inattendue. Un résultat d'erreur a été renvoyé sans message d'erreur



    En essayant les deux solutions.

  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 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    C'est une requête DB2-400 ou une requête MS-SQL ? elle est lancée sur quoi, cette requête ?

    Si c'est sur l'AS400, les fonctions CONVERT() et GETDATE() ne fonctionneront pas.

  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 Precision
    C'est une requête qui est faite sur DB2 par l'intermédiaire d'un dts. Mais effectivement elle est exécuté sur DB2-400.

    Est-ce que je dois poser ma question sur un autre forum, pour connaître la fonction date sur DB2-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 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Alors, en DB2, ca devrait plutôt donner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HAVING DATE = 
    INT ( 
       VARCHAR ( YEAR ( CURDATE ( ) ) ) || 
       SUBSTR ( DIGITS ( MONTH ( CURDATE ( ) ) ) , 9 , 2 ) || 
       SUBSTR ( DIGITS ( DAY ( CURDATE ( ) ) ) , 9 , 2 ) 
       )
    PS : pour tout code SQL DB2, veuillez dorénavant plutôt passer par le forum Autres SGBDR

  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 Info complémentaires
    Merci pour cette info,

    SUBSTR ( DIGITS ( MONTH ( CURDATE ( ) ) ) , 9 , 2 )

    Je cherche a comprendre la ligne, surtout le ,9 ,2)

    Et encore Merci.

  8. #8
    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 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUBSTR ( DIGITS ( MONTH ( CURDATE ( ) ) ) , 9 , 2 )
    CURDATE() => retourne la date système : 03/09/04
    MONTH => retourne le mois : 9
    DIGITS => retourne un chiffre à 10 positions, avec des 0 à gauche : 0000000009
    SUBST( chaine, debut, longueur) => retourne 2 caractères de la chaîne, partant de la position 9 : 09

  9. #9
    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 Quel forum !!!!
    Milles merci pour toutes ces infos. J'ai la réponse et en plus les explications.

    Au top !!!

    ps : promis pour le code je mettrai les balises.

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

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. Réponses: 7
    Dernier message: 07/10/2004, 23h59

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