唐
唐朝笨蛋
Unregistered / Unconfirmed
GUEST, unregistred user!
1,一个表tmptable<br> id tmpdate<br> 1 2008-1-1<br> 2 2009-12-25<br> 3 大富翁<br><br>2,通过tmptable建了视图<br>CREATE VIEW dbo.VIEW1<br>AS<br>SELECT *<br>FROM tmptable<br>WHERE (isdate(tmpdate) = 1)<br><br> 表内容显示<br> id tmpdate<br> 1 2008-1-1<br> 2 2009-12-25<br>3,对表操作<br>SELECT *<br>FROM VIEW1<br>WHERE (DATEPART(mm, tmpdate) = 1)<br><br>出错,提示字符串转为datetime类型时发生语法错误<br><br>结论:也就是说第2步的isdate过滤对第3步的操作并没有效果,datepart时,仍旧把id为3的数据进行操作,于是报错<br><br>问题:为什么会这样,如何避免