1

我在 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

不返回任何记录

在表 2 上

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 条记录却没有取回任何记录???

4

1 回答 1

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') 看看实际的区别是什么。

于 2013-04-18T09:02:39.273 回答