我有一个SQL Server中的存储过程,我正在更新并试图想出一种方法来更改年份(仅限于一年)。如何通过保持月份和日期并将年份更改为当前来选择SQL日期?
例如:日期为2010年5月1日,在选择时,我需要的日期为01/05/2017。
我有一个SQL Server中的存储过程,我正在更新并试图想出一种方法来更改年份(仅限于一年)。如何通过保持月份和日期并将年份更改为当前来选择SQL日期?
例如:日期为2010年5月1日,在选择时,我需要的日期为01/05/2017。
要选择当前年份,
SELECT DateAdd(YEAR, YEAR(GETDATE())-YEAR(date_field), date_field) FROM TableName
你可以使用datefromparts
,如果你的SQL Server版本为> = 2012
SELECT
CONVERT(VARCHAR(12),
DATEFROMPARTS(DATEPART(YEAR, GETDATE()),
DATEPART(MONTH, '01/05/2010'),
DATEPART(DAY, '01/05/2010')), 103)
应该发生什么例如2012年2月29日(闰日)? 2017年2月29日这个日期不存在。 –
@PeterB,那么它将显示2017年2月28日。 – Madhukar
@Madhukar你不能说OP,只有约翰(希望)知道他的要求是什么。 –