2010-07-01 5 views
1

Je suis sûr que je donne sur quelque chose de simple, je vous avoue que je suis encore à apprendre divers aspects de SQL et la fonction DATEPART est un ..fonction scalaire SQL retourne quart invalide

Je SAISIE une date et retour un quartier invalide, voici le code:

SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

ALTER FUNCTION Dbo.FN_Get_Quarter (
    -- the parameters for the function here 
    @date     varchar(10) 
) RETURNS BIT 
AS 
BEGIN 

    RETURN datepart(qq,@date) 

END 

Voici le test que je utilise et la valeur retournée ...

select dbo.FN_GET_QUARTER('07-14-2010') 

... retourne 1

Répondre

1

datepart retourne un entier, mais vous avez déclaré signifie que votre type de retour de fonction bit

+0

+1: Vous étiez en premier –

0

De retour un TBI la valeur ne peut être 0 ou 1. Vous devez changer votre type de données INT pour obtenir le valeur réelle étant retourné:

ALTER FUNCTION Dbo.FN_Get_Quarter (
    @date     varchar(10) 
) RETURNS INT 
AS 
BEGIN 

    RETURN datepart(qq,@date) 

END 
+0

Oh si simple! Je me sens un peu idiot pour avoir oublié ça, merci! – JMS49