如何将具有 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
而无需函数调用云。
我有一个 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
而无需函数调用云。