今天改一个项目的时候,出现了一个很蛋疼的现象。像下现一句查询用户表的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