Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将具有yyyymm值的nvarchar转换为日期?_Sql_Sql Server_Converters - Fatal编程技术网

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

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') 也就是说,

我有一个表,其中有一列“绩效月”。此列的数据类型为NVARCHA255,值从“202001”到“202012”开始。如何从该表中选择最近5个月的数据?

最简单的方法是:

select convert(date, performance_month + '01')
日期的标准字符串表示形式为YYYYMMDD

对于过去五个月的数据,您只需使用:

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

也就是说,不要将字符串转换为日期。将日期转换为字符串-这有助于优化器,因为它可以在没有函数调用云的情况下查看每月的性能。

理想情况下,您应该修复设计,不要使用varchar存储日期。使用日期和时间数据类型。这是否回答了您的问题?谢谢,我成功了。。如何从转换后的最后5个月中选择数据?