“2016 年 1 月” SQL Server 中的字符串日期 - 以一个月递增

发布于 2025-01-15 21:46:42 字数 128 浏览 0 评论 0原文

January-2016
August-2017
November-2018
January-2018
August-2018
November-2018

这是我的日期格式,如何将月份加 1?

January-2016
August-2017
November-2018
January-2018
August-2018
November-2018

This is my date format how to increment month by 1 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

放赐 2025-01-22 21:46:42
DECLARE @Str VARCHAR(20) = 'January-2016'

SELECT FORMAT(DATEADD(MONTH , 1 , 
                    DATEFROMPARTS(RIGHT(@Str, 4) ,  DATEPART (MONTH, REPLACE(@Str , '-' , ' 01 ')) , 1)
                    ) 
            , 'MMMM-yyyy')

Result: February-2016
DECLARE @Str VARCHAR(20) = 'January-2016'

SELECT FORMAT(DATEADD(MONTH , 1 , 
                    DATEFROMPARTS(RIGHT(@Str, 4) ,  DATEPART (MONTH, REPLACE(@Str , '-' , ' 01 ')) , 1)
                    ) 
            , 'MMMM-yyyy')

Result: February-2016
不羁少年 2025-01-22 21:46:42

您可以将破折​​号替换为 ' 1 ',只要您明确使用英语即可:

SET LANGUAGE us_english;

DECLARE @s varchar(67) = 'January-2016';  

SELECT TRY_CONVERT(date, REPLACE(@s, '-', ' 1 '));

所以然后添加月份:

SELECT DATEADD(MONTH, 1, <try_convert expression>);

You can just replace the dash with ' 1 ', as long as you explicitly use English:

SET LANGUAGE us_english;

DECLARE @s varchar(67) = 'January-2016';  

SELECT TRY_CONVERT(date, REPLACE(@s, '-', ' 1 '));

So then add a month:

SELECT DATEADD(MONTH, 1, <try_convert expression>);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文