为什么我无法从T-SQL函数中获取结果值

时间:2017-12-29 05:13:36

标签: sql sql-server

我正在尝试学习SQL Server中的函数,我不知道为什么我无法从T-SQL函数中获得正确的结果。

创建函数的查询是:

CREATE FUNCTION yuri_func1 
     (@valDate VARCHAR(10))
RETURNS VARCHAR
AS
BEGIN
    DECLARE @valWeekday VARCHAR(10);

    SET @valWeekday = DATENAME(WEEKDAY, @valDate);

    RETURN @valWeekday;
END

另一个问题是

select dbo.yuri_func1('2017-12-29') as [요일]

但我得到的唯一结果就是

  

空白。 (= “”)

但是当我执行这样的功能时,

select DATENAME(WEEKDAY, '2017-12-29')

结果是

MONDAY

我仍然不明白为什么他们会返回不同的结果。

有人知道为什么吗?

1 个答案:

答案 0 :(得分:3)

这是因为您应该接受DateTime作为函数中的参数而不是varchar

True,False