SQL Server 2008 R2TSQL Невозможно создать индекс на вид - вид использует неявное преобразование из строки в DATETIME
Я пытаюсь создать индексированную вид, однако я получаю следующую ошибку
Невозможно создать индекс в представлении '', потому что представление использует неявное преобразование из строки в datetime или smalldatetime. Используйте явный CONVERT с детерминированным значением стиля.
Проблема заключается в колонке INT [GPSTime], который регистрирует количество секунд от «1970-01-01 00:00:00», и я пытаюсь CONVERT/CAST это в DATETIME, например
CAST(DATEADD(SS,[GPSTime],'1970-01-01') AS DATETIME)
или
CONVERT(VARCHAR,DATEADD(SS,[GPSTime],'1970-01-01'),113)
или
CONVERT(DATETIME,DATEADD(SS,[GPSTime],'1970-01-01'),113)
Каждый из три приведенных выше варианта дают мне ошибку, о которой я упоминал ранее.
Возможно ли это?
Благодаря исключением, за исключением, но с этим изменением я 'm getting "В представлении содержится преобразование, которое является неточным или недетерминированным" –
Изменение этого кода 'code' DATEADD (ss, GPSTime, CONVERT (DATETIME,' 1970-01-01 ', 113)) все еще не работает –
как сохранить значение в виде datetime в отдельной таблице так, чтобы вам не приходилось делать преобразование в строку? или написать детерминированную функцию, которая возвращает это datetime? – Kritner