2010-07-01 185 views
1

我確信我俯瞰一些簡單的事情,我承認,我仍然在學習SQL的各個方面和日期部分功能是一個..SQL標量函數返回無效季度

我輸入一個日期和返回無效季度,這裏是代碼:

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 

這裏是我使用的測試和返回值...

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

...返回1

回答

1

日期部分返回一個int,但你申報你的函數的返回類型位

+0

+1:你是第一個 – 2010-07-01 00:08:58

0

返回一個位意味着該值只能是0或1。所以,你必須改變你的數據類型爲INT得到返回實際價值:

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

    RETURN datepart(qq,@date) 

END 
+0

哦這麼簡單!我忽略了這一點,感覺有點愚蠢,謝謝! – JMS49 2010-07-01 00:14:07