2017-10-09 102 views
1

我有一个SQL Server中的存储过程,我正在更新并试图想出一种方法来更改年份(仅限于一年)。如何通过保持月份和日期并将年份更改为当前来选择SQL日期?

例如:日期为2010年5月1日,在选择时,我需要的日期为01/05/2017。

+1

应该发生什么例如2012年2月29日(闰日)? 2017年2月29日这个日期不存在。 –

+0

@PeterB,那么它将显示2017年2月28日。 – Madhukar

+0

@Madhukar你不能说OP,只有约翰(希望)知道他的要求是什么。 –

回答

1

要选择当前年份,

SELECT DateAdd(YEAR, YEAR(GETDATE())-YEAR(date_field), date_field) FROM TableName 
1

你可以使用datefromparts,如果你的SQL Server版本为> = 2012

SELECT 
    CONVERT(VARCHAR(12), 
      DATEFROMPARTS(DATEPART(YEAR, GETDATE()), 
          DATEPART(MONTH, '01/05/2010'), 
          DATEPART(DAY, '01/05/2010')), 103) 
+0

DATEFROMPARTS()是v2012 fyi。 –

+0

你的第二个和第三个参数是倒退的。 –

+0

谢谢@ GordonLinoff.Corrected它 – TheGameiswar

相关问题