用年份和月份更新第一个和最后两个字符

Update the first and last 2 charactors with year and month

我有一个值,我需要将第一个字符更改为年份,将最后两个字符更改为月份。 AttributeValue 字段值为 17WEBD01。我需要用当前年份的最后两位数更新 17,我需要用当前月份 02 更新 01。

我试过这个语句,但在 Left 语句中出现错误

UPDATE [EC_StoreAttributes]

   SET Left(AttributeValue, 2) = SELECT RIGHT(CONVERT(VARCHAR(10),GETDATE(),101),2), 
       Right(AttributeValue, 2) = SELECT LEFT(CONVERT(VARCHAR(10),GETDATE(),101),2)

WHERE AttributeType = 'ECSRCCODE' and StoreRecordId = '1' 

通过转换和组合字符串一次性更新一列。它们是 integer 输出,因此您必须将它们转换为 varchar (2)。字符串的第一部分替换年份(前 2 个值)和 replace 再次用于替换字符串的右侧部分

UPDATE [EC_StoreAttributes]
SET AttributeValue = REPLACE(CAST((
                SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 101), 2)
                ) AS VARCHAR(2)) + REPLACE(AttributeValue, left(AttributeValue, 2), ''), RIGHT(CAST((
                    SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 101), 2)
                    ) AS VARCHAR(2)) + REPLACE(AttributeValue, left(AttributeValue, 2), ''), 2), '') + REPLACE(RIGHT(CAST((
                    SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 101), 2)
                    ) AS VARCHAR(2)) + REPLACE(AttributeValue, left(AttributeValue, 2), ''), 2), RIGHT(attributevalue, 2), CAST((
                SELECT LEFT(CONVERT(VARCHAR(10), GETDATE(), 101), 2)
                ) AS VARCHAR(2)))
        WHERE AttributeType = 'ECSRCCODE'
         AND StoreRecordId = '1'