我想将一个看起来像数字的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
这个添加不是总结,只是将它添加到最后..
答案 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))