Согласно 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
, что здесь не так.