小编典典

T-SQL查询返回不应包含的项目

sql

这是场景。有问题的列称为“ 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'

返回相同的结果


阅读 166

收藏
2021-04-14

共1个答案

小编典典

千分之一秒的精度不足。尝试使用“ .997”。

MSDN DateTime文档

运行此命令,您将看到:

declare @dt datetime

select @dt = '2009-09-30 23:59:59.999'
select @dt
2021-04-14