日期:2014-05-17  浏览次数:20421 次

一条sql语句,异常“从字符串向 datetime 转换时失败。”
 
sql语句如下:
 select LeaveTime from tbTouristRecord where EnterTime < dateadd(hour,-1,getdate()) and LeaveTime=cast('NULL' as datetime)
我想做的,就是从tbTouristRecord表中查询LeaveTime,条件是EnterTime在当前时间的一个小时以前并且LeaveTime字段为“NULL”。LeaveTime字段在数据库里面是datetime格式的。我试了下,在cast的时候,如果把不是NULL的字符串作为参数,是没问题的,但是用"NULL"的时候,就出现题目的异常。但是我的数据库里面,LeaveTime字段确实有很多是NULL,这个是我的判断条件,请问,在查询dateTime格式的字段是,NULL怎么处理?

------解决方案--------------------
cast(NULL as datetime)

------解决方案--------------------
NULL 值是不能等于的。 is null
------解决方案--------------------
探讨

引用:

你写的'null'是字符串,这个和空值(null)完全是两个概念

恩,对的,我发现这个问题了。但是依然没有解决到问题。等同于这样的问题,我的leaveTime字段是datetime格式,如果没有数据,在sql2005里面,就是NULL,但是我查询的时候:select * from tbTouristRecord where leaveTime=NULL,查出……