视图以日期作为条件查询条件时虽显式转换?

今天改一个项目的时候,出现了一个很蛋疼的现象。像下现一句查询用户表的T-SQL语句:

Select * From [tableName] Where EditTime = '2012-06-07'

    功能很简单,就是查询[EditTime]的值等于2012年06月07日的记录

    但,当把这种东东写到了视图之后,就出事了,比如:Select * From [viewName] Where EditTime = '2012-06-07',只要写了这个where条件,就会报个“从字符串转换日期和/或时间时,转换失败。”的鸟出来,这样又是何解呢。。。
    估计是因为视图不支持日期型数值格式隐式转换吧,这个只是我的猜测,解决办法倒是有了,如下:   
Select * From [viewName] Where Cast(EditTime as datetime) = '2012-06-07'

还有的就是,这个方法匹配不到'2012-06-07 10:00:00'这样的格式的,如果这个也想要匹配的话,得像这样这样写。 

Select * From [viewName] Where datediff(dd,Cast(EditTime as datetime),'2012-06-07') = 0
posted @ 2012-06-28 16:54  Seasons1987  阅读(346)  评论(0编辑  收藏  举报