T-SQL - 接收日期值并调整日/月保留年份

时间:2012-08-14 10:41:22

标签: tsql

我正在尝试对我将传递给存储过程的值执行一些日期操作。

示例输入;

31/12/2008 
15/11/2007 
21/05/2005

预期产出;

31/12/2012
15/11/2012
21/05/2012

提供答案的格式化代码;

DECLARE @date DATETIME = '31/12/2007'
DECLARE @year INT 
SET @year = DATEPART(YEAR, GETDATE())
SELECT DATEADD(YEAR, @year - DATEPART(YEAR, @date), @date) 

1 个答案:

答案 0 :(得分:4)

您是否尝试将年度组件转换为2012年?

-- get the year part
DATEPART(YEAR, [Date])

-- get the number of years to add
2012 - DATEPART(YEAR, [Date])

-- add that many years to the date
DATEADD(YEAR, 2012 - DATEPART(YEAR, [Date]), [Date])