2

这似乎应该很简单,但它把我逼到了墙角。

我有两列 - 'tx_date' 和 'time' 分别存储为 char(10)。(我知道糟糕的数据库设计,但不是我的设计)

从查询中,我可以将它们转换为日期时间就好了-

“...转换(日期时间,tx_date,时间,11)...”

(因此 tx_date "09/11/27" 和时间 "07:12:18" 将产生 "2009-11-27 07:12:18.000")

但是,如果我随后将转换复制并粘贴到 SQL Server Management Studio 中的“公式”字段中(我在查询中测试它的地方),它会告诉我“验证列公式时出错..”

如果我强制它使用该公式,它仍然有效,但我不想继续将此计算列添加到一个重要的表中,直到我知道它为什么与公式有问题。

4

1 回答 1

4

您可以使用查询将计算字段添加到 SQL Server Management Studio 中的表中,这没有问题:

ALTER TABLE dbo.YourTable 
  ADD NewDateTimeField AS CONVERT(DATETIME, tx_date + ' ' + time, 11) 

但不幸的是,由于 CONVERT 函数是非确定性的,因此您不能将其设为“PERSISTED”。这意味着每次访问时都会对其进行检查,并且您不能在其上放置索引:-(

马克

于 2009-11-28T23:05:51.057 回答