在 SQL 服务器中以 YYYYMM 日期格式添加月份

Adding month in YYYYMM date format in SQL Server

我正在尝试以 YYYYMM 格式添加月份,作为一个存储过程的一部分。但是找不到这种日期格式的任何添加功能。以下是场景:

A      B         Output
-----------------------
01   202010      202011
02   202011      202101
03   202011      202102
04   202012      202104

我尝试在一年中添加月份,但它一直在添加月份而不是更改年份值,即 202014、202015。

需要您的帮助来解决这个问题。提前致谢。

首先尝试通过在 YYYYMM 值后面附加“01”将其转换为日期。然后使用 DATEADD 将您的月份值添加到日期,然后将日期格式化回 YYYYMM。使用上面的示例,A 列和 B 列分别作为 months-to-add 和 YYYYMM 值,下面的 SQL 应该给出您想要的值。

format(dateadd(month, A * 1, cast(concat(B, '01') as date)), 'yyyyMM') as new_yyyymm

注意:您的 A 列似乎被格式化为字符,因此上面的“A * 1”co-erce 变成了数字。