【发布时间】:2018-03-05 13:50:52
【问题描述】:
我正在努力更新数据库中某些列中的 YEAR 数据。这些值类似于 201201(年+月)。此列 (month_id) 的数据类型是数字。我只需要将 201201 更改为 201501,将 201301 更改为 201601,以便将 +3 添加到 Year。 我尝试过使用 CAST、CONVERT。尝试编写如下查询:
UPDATE Table
SET month_id = SUBSTRING(CAST(month_id as VARCHAR(10)), 1, 4) +3
WHERE month_id = '202011'
它给出的结果为 2023。不是 202311。后来我尝试 CONCAT,但它给出了算术错误。 任何人都可以提出一个合适的解决方案吗?
也与另一列 day_desc (datatype - nchar [10]) 相同,值类似于 01.01.2012,01.01.2013 等...这里也需要更改年份。但由于数据格式不同,我无法做到。
【问题讨论】:
标签: sql-server sql-server-2008