【问题标题】:Change Month and Year in a datetime更改日期时间中的月份和年份
【发布时间】:2013-09-23 06:25:24
【问题描述】:

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

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。

我该怎么做?

谢谢

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 感谢您的回复!
    【解决方案2】:

    添加原始年份和月份与新年份和月份之间差异的替代方法:

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

    【讨论】:

      猜你喜欢
      • 2018-10-15
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多