我的查询中有一个日期时间字段。
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 .
我该怎么做呢?
谢谢
我的查询中有一个日期时间字段。
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 .
我该怎么做呢?
谢谢
也许:
UPDATE dbo.TableName
SET JEDate = CONVERT(DATETIME, CAST(@Year as varchar(4)) + '-' + CAST(Period as VARCHAR(2)) + '-' + '01', 102)
WHERE JEDate IS NOT NULL
另一种方法是添加原始年份和月份与新的年份和月份之间的差异:
选择 dateadd(year, @year-Year(JEDATE), dateadd(month, Period-Month(JEDATE), JEDATE))