总结列tsql

时间:2017-10-24 07:06:10

标签: sql-server tsql

我想将一个看起来像数字的varchar添加到另一个看起来像日期的varchar

varchar A 如下所示:5

varchar B 如下所示:1999.08.22

我想要做的是将varchar A 添加到varchar B ,使其如下所示:2004.08.22并将其保存在名为的新列中ç

UPDATE D061_15018659.dbo.T_OBJ2001 
SET C  = A + B

这个添加不是总结,只是将它添加到最后..

2 个答案:

答案 0 :(得分:1)

使用功能Dateadd:

喜欢这样: -

UPDATE D061_15018659.dbo.T_OBJ2001 
SET C  = DATEADD(YYYY,A,CAST(B AS DATE)

答案 1 :(得分:1)

嗯,你真正应该做的是阅读Aaron Bertrand的Bad habits to kick : choosing the wrong data type并重构数据库,而不是保留int和日期的varchar值。

假设您无法更改数据库结构,您可以将B转换为date并使用dateadd(注意我必须更换点空字符串以便进行实际转换):

UPDATE D061_15018659.dbo.T_OBJ2001 
SET C = DATEADD(YEAR, CAST(A as int), CONVERT(Date, REPLACE(B, '.', ''), 112))