夜的第七章

ASP.NET、C#、.NET开发资源、Javascript等等为主的开发备注收藏注意警告等的一个个人博客。

« 实现远程图片自动保存到本地并加上水印功能三十分钟掌握STL[转] »

关于SQLSERVER数据库中时间23:59:59.999和2008-12-23: 0:00:00.000的比较

在比较'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)来转换时间以比较。此函数在中文平台可正常使用,其他语言平台没做测试。可能会有问题。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog 1.8 Arwen Build 81206



©2007 - 2010 www.leadnt.com 保留一些权利吧