【发布时间】:2019-10-01 18:04:20
【问题描述】:
我正在尝试将计算字段添加到 SSMS 中的现有表中,这会将格式为 YYYYMMDD 的字符串转换为日期格式,但我收到有关字符串字段无效的错误。
我需要计算字段,因为我在字符串字段中有 '00000000' 值(即 NULL),因此不能在日期计算中使用它。
我使用的代码是:
ALTER TABLE [TEM].[AssignmentRates]
ADD [Date_Expired] DATE NULL
(SELECT CONVERT([date], CASE WHEN [Expiry_Date]='00000000' THEN NULL ELSE [Expiry_Date] END))
其中[Expiry_Date] 是我要转换的字符串列,[Date_Expired] 是我要添加的计算列的名称。
我收到此错误:
列名“Expiry_Date”无效
反对该字段名称的两个实例,并且无法找出原因。如果我作为独立的SELECT 运行查询,它会返回所需的结果。
使用表别名或完整的数据库、表名和列名似乎也不起作用。
这可能是非常明显的事情,但我无法弄清楚它是什么。
【问题讨论】:
-
错误似乎很明显。您需要引用一个有效的列。
标签: sql-server ssms calculated-columns