wodeqq584958184 2018-06-06 07:16 采纳率: 77.8%
浏览 1617
已采纳

关于SQL server 2008时间差datediff函数计算问题

如题,我设置了个触发器,每当table4插入的数据符合触发器条件时,则执行名字为
table5-insert的存储过程,在此存储过程里,包含了时间差datediff的运算过程和赋值,还有数据的更新和叠加,时间段if条件判断语句等,

问题的重点来了:时间差的运算出了问题,我的时间差算法是最新一条的0状态记录machine-itime减去非0状态记录的ng-itime,得出来的时间差值赋值到对应的字段,如果有旧数据记录,则进行数据叠加记录下来。

可是不知道为什么,时间差运算出来的结果有时候是正常,确确实实只相差几秒,但有时候是几百秒的甚至几万秒
没搞懂为什么会有这种状况,我把图发上来让大神和大佬们更好理解我的问题~!

这个是table4插入数据的图,可以很明显的知道,第一次的时间差,两个数据记录相减,得出来的时间差是3秒,第二次的时间差,两个数据记录相减,得出来的时间差是4秒
图片说明

可是,计算出来的结果很有问题,时好时坏的那种,现在我贴图把计算出来的结果给你们看下
这个是第一次进行的时间差数据,没错,是3秒,并且添加进去了
图片说明

这个是第二次进行的时间差数据,由table4看出,明明只影响了4秒,可结果是这样的!!!
图片说明

不知道为何无缘无故变成了91秒,如果再有时间差数据插进来,进行叠加的话,计算出来的数值结果有时候是叠加对的,也有时候像刚刚那种情况,叠加个几十,几百秒进去

请问为什么会发生这样的情况,我真的没搞懂,我用的也是SS单位来计算的,如果换成MI单位计算的话,就不会有这种异常数值结果情况发生了,但是不是每个错误代码类型(即location+pointer连起来就是一个错误代码类型)都是能够持续1分钟以上的,多数都是只影响几秒或几十秒,求各路SQL server大神或大佬来帮忙看看我的问题,顺便留下我的QQ:584958184,希望能解决这个问题~ 感谢大家~!!

  • 写回答

4条回答 默认 最新

  • Go 旅城通票 2018-06-06 08:45
    关注

    你确认就这几条记录?看存储过程没什么问题,是不是这个触发器逻辑有问题,存储过程重复执行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算