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