You could use DATEADD
to add 26
years to 1990
:
CREATE TABLE #tableName(receivedDate DATE);
INSERT INTO #tableName(receivedDate) VALUES ('1990-01-06'),('1990-01-16');
UPDATE #tableName
SET receivedDate = DATEADD(YEAR, 26, receivedDate)
WHERE DATEPART(yyyy, receivedDate) = '1990'
AND DATEPART(mm, receivedDate) = '01';
SELECT *
FROM #tableName;
LiveDemo
SQL Server 2012+ you could use DATEFROMPARTS
:
UPDATE #tableName
SET receivedDate = DATEFROMPARTS(2016,
DATEPART(mm, receivedDate),
DATEPART(dd, receivedDate)
)
WHERE DATEPART(yyyy, receivedDate) = '1990'
AND DATEPART(mm, receivedDate) = '01';
LiveDemo2
EDIT
Keep in that expression DATEPART(yyyy, receivedDate) = '1990'
is not SARGable and query optimizer will skip index ob receivedDate
(if exists any). You could use BETWEEN
or >= <
like Gordon Linoff proposed.