我试图用子查询,这将转化Unix时间戳到正规DateTime
格式,使用这种查询添加计算列,但有错误。使用SQL Azure的服务器。
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 子查询在此背景下允许的。只有标量表达式允许
您不能使用子查询的计算列。相反,只是给公式只。
alter table dbo.FP_Contacts_CRM
add DWH_propertieslastmodifieddatevalue as
(
DATEADD(S,
CONVERT(int,LEFT(propertieslastmodifieddatevalue, 10))
, '1970-01-01')
)
正如错误说,子查询不允许用于计算列声明。
但原来的问题,你可以使用使用标量函数像下面。
DATEADD(S, CONVERT(int,LEFT(<yourdtcolumn>, 10)), '1970-01-01')