Според MS docs DATEADD
е детерминистична функция, следователно моята функция по-долу също трябва да е детерминистична:
CREATE FUNCTION [dbo].[Epoch2Date] (@i INT)
RETURNS DATETIME WITH SCHEMABINDING
BEGIN
RETURN DATEADD(SECOND,@i,'1970-01-01 00:00:00')
END
Но когато го проверя с SELECT OBJECTPROPERTY(OBJECT_ID('[dbo].[Epoch2Date]'), 'IsDeterministic')
, той връща 0
(недетерминиран).
- Защо е недетерминиран?
- Как мога да направя функцията си детерминистична?
Има подобен въпрос, но използва недетерминирана функция CAST
, което не е случаят тук.