这是场景。有问题的列称为“ datein”,其类型为“ datetime”。我有三行,“ datein”的值为“ 2009-10-01 00:00:00.000”。为什么此查询返回上述行?
SELECT * FROM t_call AS tc WHERE tc.datein >= '2009-09-30 00:00:00.000' AND tc.datein <= '2009-09-30 23:59:59.999'
使用
SELECT * FROM t_call AS tc WHERE tc.datein BETWEEN '2009-09-30 00:00:00.000' AND '2009-09-30 23:59:59.999'
返回相同的结果
千分之一秒的精度不足。尝试使用“ .997”。
MSDN DateTime文档
运行此命令,您将看到:
declare @dt datetime select @dt = '2009-09-30 23:59:59.999' select @dt