我在SQL server中创建了一个用户定义的函数。是否可以在select语句中调用这些函数,就像任何其他内置函数一样?
Create function [dbo].[TIME_TO_SEC](@inputTime time)
returns INT
As
Begin
DECLARE @secDiff INT = datediff(second, '00:00:00', @inputTime)
return @secDiff;
end
目前将其称为以下内容:
DECLARE @ret int;
EXEC TIME_TO_SEC @inputTime='01:00:00'
select @ret;
我正在尝试一些简单的事情:
select TIME_TO_SEC('01:00:00') from TimeTable
在SQL服务器中是否可行?
答案 0 :(得分:1)
这是可能的,但您需要通过用户的架构来引用该功能
select dbo.TIME_TO_SEC('01:00:00') from TimeTable
答案 1 :(得分:1)
如果您的功能出现问题,请尝试添加“WITH EXECUTE AS CALLER”
Create function [dbo].[TIME_TO_SEC](@inputTime time)
Returns int
WITH EXECUTE AS CALLER
As
Begin
DECLARE @secDiff INT = datediff(second, '00:00:00', @inputTime)
return @secDiff;
end
然后用select
调用该函数select dbo.[TIME_TO_SEC](getdate())
答案 2 :(得分:0)
是的,这当然是可行的,看起来你已经拥有了你需要的一切。你试过吗?