I have two functions: fn_Without_Param and fn_With_Param
CREATE FUNCTION [dbo].[fn_Without_Param]
(
)
...
INNER JOIN .. ON .. AND SubmitDate = CONVERT( varchar(10), GETUTCDATE(), 101 )
and
/*
I am requesting it so:
declare @SubmitDate datetime
set @SubmitDate = CONVERT( varchar(10), GETUTCDATE(), 101 )
select * from [dbo].[fn_With_Param] (@SubmitDate)
*/
CREATE FUNCTION [dbo].[fn_With_Param]
(
@SubmitDate datetime
)
...
INNER JOIN .. ON .. AND SubmitDate = @SubmitDate
In the first case I have nondeterministic (?) function (because of GETUTCDATE) and I have called the second one with the same input parameter (CONVERT( varchar(10), GETUTCDATE(), 101 ) - meens today date without hours, minutes, seconds, millisecond). Is my function nondeterministic one? How to detect this, maybe sql server has some public mark. Why is the second function slower?