Sql 如何将具有yyyymm值的nvarchar转换为日期?
我有一个表,其中有一列“绩效月”。此列的数据类型为NVARCHA255,值从“202001”到“202012”开始。如何从该表中选择最近5个月的数据?最简单的方法是:Sql 如何将具有yyyymm值的nvarchar转换为日期?,sql,sql-server,converters,Sql,Sql Server,Converters,我有一个表,其中有一列“绩效月”。此列的数据类型为NVARCHA255,值从“202001”到“202012”开始。如何从该表中选择最近5个月的数据?最简单的方法是: select convert(date, performance_month + '01') 日期的标准字符串表示形式为YYYYMMDD 对于过去五个月的数据,您只需使用: performance_month >= format(dateadd(month, -5, getdate()), 'yyyyMM') 也就是说,
select convert(date, performance_month + '01')
日期的标准字符串表示形式为YYYYMMDD
对于过去五个月的数据,您只需使用:
performance_month >= format(dateadd(month, -5, getdate()), 'yyyyMM')
也就是说,不要将字符串转换为日期。将日期转换为字符串-这有助于优化器,因为它可以在没有函数调用云的情况下查看每月的性能。理想情况下,您应该修复设计,不要使用varchar存储日期。使用日期和时间数据类型。这是否回答了您的问题?谢谢,我成功了。。如何从转换后的最后5个月中选择数据?