sqlserver 时间字段表示范围

─────>帮助文档:

datetime 和 smalldatetime
代表日期和一天内的时间的日期和时间数据类型。

datetime

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(等于 3.33 毫秒或 0.00333 秒)。如下表所示,把值调整到 .000、.003、或 .007 秒的增量。

示例                            调整后的示例
01/01/98 23:59:59.999           1998-01-02 00:00:00.000

01/01/98 23:59:59.995,
01/01/98 23:59:59.996,
01/01/98 23:59:59.997, 或
01/01/98 23:59:59.998           1998-01-01 23:59:59.997

01/01/98 23:59:59.992,
01/01/98 23:59:59.993,
01/01/98 23:59:59.994            1998-01-01 23:59:59.993

01/01/98 23:59:59.990 或
01/01/98 23:59:59.991           1998-01-01 23:59:59.990


*select *
from GatheringRecord
where --GatheringRecord.GatherDate between '2009-05-01 00:00:00.000' and '2009-05-31 23:59:59.999'    以前好多报表统计都是这样的
   and TractID not in (select TractID from GatheringRecord where convert(varchar(7),GatherDate,120) ='2009-05')

出来后是2009-06-01的数据, 把它更正 为23:59:59.998**就可以了。

你可能感兴趣的:(sqlserver)