sql标量函数返回无效的季度

时间:2010-07-01 00:03:09

标签: sql date user-defined-functions

我确信我忽略了一些简单的事情,我承认我还在学习SQL的各个方面,而Datepart函数是一个......

我正在输入日期并返回无效的季度,这是代码:

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

2 个答案:

答案 0 :(得分:1)

datepart返回一个int,但是你已经将函数返回类型声明为位

答案 1 :(得分:0)

返回BIT意味着该值只能是0或1.因此,您必须将数据类型更改为INT以获取返回的实际值:

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

  RETURN datepart(qq,@date)

END