SqlServer DateTime

诡异的SQLServer的datetime类型
2010-11-05 17:33
今天遇到了一个问题。。才发现SQLServer的datetime类型真是诡异。。。
具体就是,要把日期时间插入数据库,每秒钟若干条,日期时间的类型是datetime,上面有唯一索引。

异常出来了:在插入的时候不规则的出现唯一索引冲突的异常。检查了Java部分的代码,没有问题,年月日时分秒是一样的,但是毫秒肯定不一样。后来考虑到可能是SQLServer的问题,
就写了短程序测试了一下,果然:
SQLServer在保存毫秒的时候有"舍入"的现象。
比如保存的是2010-10-01 10:00:00. 002,那么这个可能会被舍入到2010-10-01 10:00:00. 000
然后就唯一索引冲突了。
后来从MSDN的文档上也确认了这个说法。

最后自己写了段程序,从 [日期.时间.000] 插入到[日期.时间.999],发现大概66%的数据丢掉了(唯一索引冲突),数据库里面只保存了

[日期.时间.000]
[日期.时间.003]
[日期.时间.006]
.....
[日期.时间.999]


这样的非连续的数据。

总觉得连毫秒这样的精度还要舍入,很奇怪的做法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值