为什么在显式地将所有值转换为varchar之后仍会收到隐式转换警告?

cgh8pdjw  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(234)

我从下面得到一个隐式转换警告,但我不知道为什么。一切都被显式转换为 VARCHAR .
警告说:
表达式中的类型转换(convert(varchar(30),datepart(year,convert\u implicit(datetime,[grantdate],0)),0))可能会影响查询计划选择中的“cardinalityestimate”
我想我可能需要把grantdate从 SMALLDATETIMEDATETIME 内部 YEAR 但这并没有消除警告。我愿意让这个问题溜走,因为我不认为它对性能有任何影响,但是客户机会扫描我们的所有查询,如果它们包含隐式转换,就会拒绝它们。

SELECT CONVERT(VARCHAR, FORMAT(DAY(GrantDate), 'D2')) + '-' + CONVERT(VARCHAR, FORMAT(GrantDate, 'MMM')) + '-' + CONVERT(VARCHAR, YEAR(CONVERT(DATETIME, GrantDate))) AS MyDateKey
FROM dbo.MyTable

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题