在日期时间更改月份和年份

时间:2013-09-18 13:09:19

标签: tsql datetime sql-server-2008-r2

我的查询中有一个日期时间字段。

Select Account, Period, JEDate
From table

我想用参数“@Year”(int)替换“JEDate”datetime字段的年份。 我还想用“Period”(int)字段替换月份。

实施例: 如果JEDate是1900-01-01 00:00:00.000(或任何其他日期),那一年是2013年,月份是2,我希望JEDate是2013-02-01 00:00:00.000。< / p>

我该怎么做?

谢谢

2 个答案:

答案 0 :(得分:1)

也许:

UPDATE dbo.TableName
SET JEDate = CONVERT(DATETIME, CAST(@Year as varchar(4)) + '-' + CAST(Period as VARCHAR(2)) + '-' + '01', 102)
WHERE JEDate IS NOT NULL

Demo

答案 1 :(得分:0)

另一种方法,可以增加原始年份和月份以及新年和月份之间的差异:

选择dateadd(年,@年 - 年(JEDATE),dateadd(月,期 - 月(JEDATE),JEDATE))