`
Luob.
  • 浏览: 1603122 次
  • 来自: 上海
社区版块
存档分类
最新评论

Truncated incorrect time value

阅读更多
mysql 计算两个时间 相差  多少小时,多少分钟,多少秒
格式化成   HH:MM:ss

原因: TIMEDIFF,TIME_FORMAT 极限值 溢出

来看看错误


Data truncation: Truncated incorrect time value: '860:19:15.000000';


一般数据可以使用
TIMEDIFF,  TIME_FORMAT
 (CASE WHEN LENGTH(soi.fsOrderTime)=0 OR LENGTH(soi.fsBacktime)=0 OR LENGTH(soi.fsCreateTime)=0 THEN NULL ELSE TIME_FORMAT(TIMEDIFF(soi.fsBacktime,soi.fsCreateTime),'%T') END) AS fs_take_time


如果计算的两个时间差 超过 30天左右
使用 TIMESTAMPDIFF

由于  TIME_FORMAT 也有极限值,所以不能使用这个函数了
只能自己干
%60
CONCAT(
        IF(
        (
        TIMESTAMPDIFF(
        HOUR,
        soi.fsCreateTime,
        soi.fsBacktime
        ) < 10
        ),
        CONCAT(
        '0',TIMESTAMPDIFF(
        HOUR,
        soi.fsCreateTime,
        soi.fsBacktime
        )
        ),
        (
        TIMESTAMPDIFF(
        HOUR,
        soi.fsCreateTime,
        soi.fsBacktime
        )
        )
        ),
        ':',
        IF(
        (
        TIMESTAMPDIFF(
        MINUTE,
        soi.fsCreateTime,
        soi.fsBacktime
        ) % 60 < 10
        ),
        CONCAT(
        '0',TIMESTAMPDIFF(
        MINUTE,
        soi.fsCreateTime,
        soi.fsBacktime
        ) % 60
        ),
        (
        TIMESTAMPDIFF(
        MINUTE,
        soi.fsCreateTime,
        soi.fsBacktime
        ) % 60
        )
        ),
        ':',
        IF(
        (
        TIMESTAMPDIFF(
        SECOND,
        soi.fsCreateTime,
        soi.fsBacktime
        ) % 60 < 10
        ),
        CONCAT(
        '0' ,TIMESTAMPDIFF(
        SECOND,
        soi.fsCreateTime,
        soi.fsBacktime
        ) % 60
        ),
        (
        TIMESTAMPDIFF(
        SECOND,
        soi.fsCreateTime,
        soi.fsBacktime
        ) % 60
        )
        )
        )
        END
        ) AS fs_take_time,


再来看看 TIMEDIFF,  TIME_FORMAT 极限值   838:59:59
  SELECT TIME_FORMAT(TIMEDIFF('2017-08-16 14:22:32','2017-07-11 18:03:17'),'%T')



这两个是时间 正确相差
'2017-08-16 14:22:32','2017-07-11 18:03:17'
这么多小时 分钟 秒数
860:19:15




  • 大小: 8.6 KB
分享到:
评论

相关推荐

    使用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: ”” for column ”createtime”的快速解决方法

    在MySQL 5.x及以上版本中,用户可能会遇到错误#1929,提示"Incorrect datetime value: '' for column 'createtime'"。这个错误通常出现在尝试插入或更新包含日期时间值的列时,如果该列的值为空,而数据库配置不允许...

    Delphi7.1 Update

    * TClientDataSet.ChangeCount will return an incorrect value when editing the value of a TStringField or a TWideStringField and then reverting it to the original value (Quality Central 2717 & 4508)....

    BURNINTEST--硬件检测工具

    A 2 minute timeout has been added to the collection of system information. - Video playback, Hard disk and CD/DVD test 'no operations' error reporting changed. - When BurnInTest crashes, it will ...

    OutlookAttachView v2.73

    OutlookAttachView displayed empty image or incorrect image. * Version 2.66 o Added more accelerator keys (in the menus). * Version 2.65 o Added 'Image Preview' option (Under the View menu). If ...

    acpi控制笔记本风扇转速

    An incorrect output filename was produced when this parameter was a null string (""). Now, the original input filename is used as the AML output filename, with an ".aml" extension. Implemented a ...

Global site tag (gtag.js) - Google Analytics