我从下面得到一个隐式转换警告,但我不知道为什么。一切都被显式转换为 VARCHAR
.
警告说:
表达式中的类型转换(convert(varchar(30),datepart(year,convert\u implicit(datetime,[grantdate],0)),0))可能会影响查询计划选择中的“cardinalityestimate”
我想我可能需要把grantdate从 SMALLDATETIME
至 DATETIME
内部 YEAR
但这并没有消除警告。我愿意让这个问题溜走,因为我不认为它对性能有任何影响,但是客户机会扫描我们的所有查询,如果它们包含隐式转换,就会拒绝它们。
SELECT CONVERT(VARCHAR, FORMAT(DAY(GrantDate), 'D2')) + '-' + CONVERT(VARCHAR, FORMAT(GrantDate, 'MMM')) + '-' + CONVERT(VARCHAR, YEAR(CONVERT(DATETIME, GrantDate))) AS MyDateKey
FROM dbo.MyTable
暂无答案!
目前还没有任何答案,快来回答吧!