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 :

Utilisation de Getdate dans une fonction


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut Utilisation de Getdate dans une fonction
    Bonjour à tous,

    J'utilise une fonction qui me retourne une table dans laquelle j'aurais besoins de recuperer la date système pour borner une requete.

    Voici un extrait de mon code :

    CREATE FUNCTION SP_get_consommation(
    @pnoVehicule INTEGER,
    @pdateHeureDebut CHAR(15),
    @pdateHeureFin CHAR(15)
    )RETURNS @iTableConso TABLE (
    noconsommation integer
    ...
    )

    AS
    BEGIN

    DECLARE @dateJour CHAR(15);


    select @dateJour=convert(char(15),getdate(),112) + ' 000000'

    ...


    RETURN

    END
    J'obtiens alors l'erreur suivante :
    Serveur : Msg 443, Niveau 16, État 1, Procédure SP_get_consommation, Ligne 27
    Utilisation incorrecte de 'getdate' à l'intérieur d'une fonction.
    Si je ne peut pas utiliser getdate dans une fonction, quel moyen je pourrais utiliser pour recuperer la date système et renvoyer une table.
    Si vous aviez un p'tit exemple pour illustrer ce serait top.

    J'ai bien trouvé une solution mais elle ne me plait pas trop : passer la date système en parametre a la fonction....

    J'espère que vous pourrez m'aider sur ce coup car je commence a tourner en rond J'ai fouillé dans mes bouquins et sur les forums et j'ai rien trouvé !!! Merci d'avance.

  2. #2
    Membre actif
    Inscrit en
    Février 2003
    Messages
    182
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 182
    Points : 206
    Points
    206
    Par défaut
    voilà ce que dit Microsoft pour ceci

    An invalid use of the Getdate function within a function may cause an access violation and the following error message appears in Query Analyzer:
    Server: Msg 443, Level 16, State 1, Procedure fnTestDate, Line 4
    Invalid use of 'getdate' within a function.
    ODBC: Msg 0, Level 19, State 1
    RESOLUTION
    To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
    STATUS
    Microsoft has confirmed that this is a problem in Microsoft SQL Server 2000.

    This problem was first corrected in Microsoft SQL Server 2000 Service Pack 2.
    J'espère avoir contribué à la réponse.

    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Merci pour l'info Mammar. Je viens d'installer le dernier SP3 pour sqlserver mais malheureusement ca ne change rien à mon problème.
    J'ai plutôt l'impression que ca viens de mon code ou de la facon d'utiliser la fonction getdate. Dommage j'aurais preféré que ca vienne d'un bug de sqlserver Personne d'autre que moi n'a déjà eu ce problème ???

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Je viens de trouver la reponse à mon problème. Je vous en fait profiter :

    Sql server interdit l'utilisation de fonctions non deterministes au sein de fonctions utilisateurs. On ne peut donc pas utiliser getdate dans une fonction utilisateur. Pour contourner le problème il suffit de passer par une vue.

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

Discussions similaires

  1. Utiliser un string dans une fonction de setInterval
    Par strat0 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/08/2007, 17h56
  2. [SQL SERVER 2005] Utilisation de Exec dans une fonction ?
    Par Dadou74 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/09/2006, 22h09
  3. Utilisation de fstream dans une fonction
    Par Silverstone dans le forum SL & STL
    Réponses: 7
    Dernier message: 22/07/2006, 09h55
  4. utilisation de getdate() dans une fonction ?
    Par devdev dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/03/2005, 17h40
  5. GETDATE() dans une fonction
    Par joul's dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/02/2005, 10h37

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