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 :

Fonction pour extraire un mois


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 84
    Points
    84
    Par défaut Fonction pour extraire un mois
    Quelqu'un peut me dire ce qui ne fonctionne pas là ?

    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
     
    CREATE FUNCTION [dbo].[FN_GET_MONTH_DATCRE] (@datcre decimal(7,0))
    RETURNS decimal (2,0)
     
    AS
     
    BEGIN
     
    DECLARE @result decimal(2,0)
     
    	IF (LEN(@datcre) = 7)
     
    	BEGIN
    		@result = SUBSTRING(@datcre,4,2)
    	END
     
    	ELSE
     
    		@result = SUBSTRING(@datcre,3,2)
     
    	RETURN @result
    END

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Nous ne savons même pas ce que vous attendez !
    Comment pouvons-nous vous être utile ?
    Que fait ta fonction ?

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 84
    Points
    84
    Par défaut
    En fait, je donne en paramètre une date formatée sur 6 ou 7 caractères.

    En fonction, on extrait le mois comme suit :

    Si 7
    Alors extrait caractères 4 et 5 du parmètre
    sinon
    extrait caractères 3 et 4 du parmètre

    Pour cela, j'ai utilisé la fonction SUBSTRING.

    Merci

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Déjà, vous avez déclaré un decimal je ne sais pas pourquoi mais bon, plus simple est de faire comme suis :

    Il serait plus simple d'employer la fonction month.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create function dbo.FN_GET_MONTH_DATCRE
    (
       @dt_creat datetime
    ) returns int
    as
    return select month(@dt_creat)

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 84
    Points
    84
    Par défaut
    oui mais la date que je passe en paramètre est dans un format spécial de 6 ou de 7 caractères :\

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Il nous faut des exemples de tes données en entrée.

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 84
    Points
    84
    Par défaut
    C'est pas grave.
    Je viens de trouver une alternative.
    Merci

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

Discussions similaires

  1. Fonction pour récupéré le mois suivant
    Par pkp85pkp dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 22/04/2015, 18h40
  2. fonction pour extraire le TX packets et TX bytes
    Par marwa1987 dans le forum Réseau
    Réponses: 6
    Dernier message: 10/04/2013, 15h53
  3. Fonction pour extraire les données d'un DataGridView
    Par Anthony75 dans le forum VB.NET
    Réponses: 6
    Dernier message: 16/02/2010, 02h07
  4. Fonction pour le mois
    Par GodGives dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/01/2008, 19h58
  5. Réponses: 5
    Dernier message: 04/07/2007, 19h31

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