我有一个日期维度表,其中包含从2000年到2018年的每个日期。我需要在我的日期维度中添加一个新列,该列将被称为'CY'
。
我需要列'CY
'填充以下代码:
如果日期介于01 January 2015 to 31 December 2015
之间,那么代码将为'CY 2015'
,依此类推。我还有一个名为Year的列,其数据类型为'int'
。
我陷入了困境:
USE MyDatabase
UPDATE DateDimension
SET CY = 'CY' + ' ' + cast(Year AS text)
我收到此错误消息:
“不允许从数据类型int到文本的显式转换。”
我该如何纠正?
答案 0 :(得分:2)
使用:
UPDATE DateDimension
SET CY = 'CY ' + cast([Year] AS NVARCHAR(4));
或 SQL Server 2012+
:
UPDATE DateDimension
SET CY = CONCAT('CY ', [Year]);
可能最好的方法是使用计算列(无需手动更新):
ALTER TABLE DateDimension
ADD CY AS CONCAT('CY ', [Year]);
的 LiveDemo
强>
答案 1 :(得分:0)
另一种方法:
alter table DateDimension
add CY as 'CY'+ ' ' + left (Year, 4)