你可以使用DATEADD
到26
年加入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+你可以使用DATEFROMPARTS
:
UPDATE #tableName
SET receivedDate = DATEFROMPARTS(2016,
DATEPART(mm, receivedDate),
DATEPART(dd, receivedDate)
)
WHERE DATEPART(yyyy, receivedDate) = '1990'
AND DATEPART(mm, receivedDate) = '01';
LiveDemo2
編輯
請即表達DATEPART(yyyy, receivedDate) = '1990'
不SARGable和查詢優化器會跳過索引ob receivedDate
(如果存在的話)。你可以使用BETWEEN
或>= <
建議使用Gordon Linoff。
謝謝,工作! – user3624883