在 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 变成了数字。
我正在尝试以 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 变成了数字。