0

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

Select Account, Period, JEDate
From table

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

示例:如果 JEDate 是 1900-01-01 00:00:00.000(或任何其他日期),年份是 2013,月份是 2,我希望 JEDate 是 2013-02-01 00:00:00.000 .

我该怎么做呢?

谢谢

4

2 回答 2

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

于 2013-09-18T13:19:24.330 回答
0

另一种方法是添加原始年份和月份与新的年份和月份之间的差异:

选择 dateadd(year, @year-Year(JEDATE), dateadd(month, Period-Month(JEDATE), JEDATE))

于 2013-09-18T13:45:05.607 回答