如何将具有 yyyymm 值的 nvarchar 转换为日期?

How to convert nvarchar having yyyymm values to date?

我有一个 table,其中有一列 'performance month'。该列的数据类型为 nvarchar(255),取值范围为“202001”至“202012”。我怎样才能 select 来自这个 table 的最近 5 个月的数据?

最简单的方法是:

select convert(date, performance_month + '01')

日期的标准字符串表示形式是 YYYYMMDD。

对于最近五个月的数据,您可以简单地使用:

performance_month >= format(dateadd(month, -5, getdate()), 'yyyyMM')

也就是说,不要将字符串转换为日期。将日期转换为字符串——这有助于优化器,因为它可以“看到”performance_month 而无需函数调用云。