在比较'2008-12-22 23:59:59.999'和'2008-12-23: 0:00:00.000'时,居然出现前者和后者相等的情况。
在查询资料后得知,必须选择 23:59:59.997,因为datetime 数据无法保证毫秒级别的精度。datetime 数据的精度在 3.33 毫秒内。使用 23:59:59.999 这个确切的时间值是不行的,因为该值将被舍入到最接近的时间值,即第二天的 0:00:00.000 。由于进行了这种舍入,将无法正确定义边界。对于 datetime 数据,必须对明确提供的毫秒值加倍小心。
个人建议使用:CONVERT(char(10),时间变量/字段,120)来转换时间以比较。此函数在中文平台可正常使用,其他语言平台没做测试。可能会有问题。