我正在尝试通过 SSMS 将计算列添加到表中 - 我宁愿不要详细了解为什么基列是 aVARCHAR(10)
而不是 aDATE
和不,我对更改它不感兴趣。
CONVERT(DATE, [charDob])
当我在表设计器 SSMS 报告中输入公式时:
验证列的公式时出错
charDobTyped
。
按预期使用公式[charDob]
“有效”,这意味着该列已正确绑定。公式也CONVERT(DATE, '2001')
按预期“有效” - 因此使用导致错误的列存在一些问题。
原始列是 aVARCHAR(10)
并且包含 NULL 值或可转换为 的值DATE
。查询SELECT CONVERT(DATE,charDob) as dob FROM people
按预期工作。此外,错误消息是关于“无效公式”而不是关于数据转换错误,所以我不认为不可转换是造成这种情况的原因。
我已经用新的计算列和一个虚拟值保存了表并重新连接到数据库——这是为了确保不会发生奇怪的缓存问题,就像有时会发生的那样。该错误独立于持久化标志而持续存在——如果它很容易关闭就好了。