我在SQL Server 2008 R2中有两个表
TABLE1 - Column DateCreated datetime null
TABLE2 - Column DateCreated datetime null
When I see the profiler
SELECT * from TABLE1
WHERE DateCreated <> '2011-06-10 00:00:00.000'
这个日期我有3条记录
2011-06-10 00:00:00.000
2011-06-10 00:00:00.000
2011-06-10 09:45:00.000
没有返回任何记录
在TABLE2上
SELECT * from TABLE2
WHERE DateCreated <> '2011-06-10 00:00:00.000'
这个日期我有3条记录
2011-06-10 18:02:05.000
2011-06-10 18:05:08.000
2011-06-10 18:07:09.000
返回所有3条记录。这很奇怪。为什么在第一种情况下,当我得到1条记录时,我没有找回任何记录???
答案 0 :(得分:2)
在您的SQL中,'2011-06-10 00:00:00.000'不是日期。它是一个转换为日期的字符串。在数据库'2011-06-10 00:00:00.000'可能实际上是'2011-06-10 00:00:00.00001'。也许尝试使用DATEDIFF(mcs,DateCreated,'2011-06-10 00:00:00.000')来查看实际的差异。