MS SQL Server - Добавление вычисляемого столбца с подзапросом - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь добавить вычисляемый столбец с подзапросом, который преобразует метку времени Unix в обычный формат DateTime, используя этот запрос, но есть ошибка.Использование Azure SQL Server.

ALTER TABLE dbo.FP_Contacts_CRM 
    ADD DWH_propertieslastmodifieddatevalue 
        AS (SELECT DATEADD(S, CONVERT(INT, LEFT(propertieslastmodifieddatevalue, 10)), '1970-01-01')
            FROM dbo.FP_Contacts_CRM)

Я получаю эту ошибку:

Сообщение 1046, Уровень 15, Состояние 1, Строка 12
Подзапросы не допускаются в этом контексте.Допускаются только скалярные выражения

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Как говорится в ошибке, подзапросы недопустимы для объявления вычисляемого столбца.

Но для исходного вопроса вы можете использовать скалярные функции, как показано ниже.

DATEADD(S, CONVERT(int,LEFT(<yourdtcolumn>, 10)), '1970-01-01')
0 голосов
/ 04 февраля 2019

Нельзя использовать подзапросы для вычисляемых столбцов.Вместо этого просто дайте только формулу.

alter table dbo.FP_Contacts_CRM 
add DWH_propertieslastmodifieddatevalue as 
    (
        DATEADD(S, 
                    CONVERT(int,LEFT(propertieslastmodifieddatevalue, 10))
                    , '1970-01-01')
    )
...