更新具有连续日期的列(SQL Server)

时间:2012-02-10 01:23:26

标签: sql sql-server

我正在尝试使用其他两列的连接和转换结果更新列,以便创建一个带有日期字段的列。 SELECT语句返回我想要更新的值,但是我在更新时遗漏了一些东西(可能很简单)。它不会执行,因为

  

“子查询返回多个值”。

但是,我不想为每一行更新相同的值,而是每行的连接结果。

我错过了什么?

UPDATE myTable
SET myDate = 
(
SELECT 
CONVERT (Date,(CONVERT (NVarchar, CreatedYear) + '-' + CONVERT (NVarchar, CreatedMonth) + '-' + '01') ,0)

FROM myTable
)

2 个答案:

答案 0 :(得分:1)

我相信你有一个额外的SELECT不需要。请尝试:

UPDATE myTable 
SET myDate =  
CONVERT (Date,(CONVERT (NVarchar, CreatedYear) + '-' + CONVERT (NVarchar, CreatedMonth) + '-' + '01') ,0) 

FROM myTable 

答案 1 :(得分:0)

在我看来,这更具有可读性:

UPDATE dbo.tblControlMaster SET AuditAddDate = CAST(CreatedYear AS NVARCHAR(4)) + '-' + CAST(CreatedMonth AS NVARCHAR(2)) + '-' + '01'