【问题标题】:Multiply time with a decimal value in mysql?在mysql中将时间与十进制值相乘?
【发布时间】:2015-06-16 12:57:35
【问题描述】:

我正在尝试将时间与十进制值相乘,但没有得到正确的结果。也就是说,当我与任何十进制值相乘时,它会将该值四舍五入为最接近的整数,然后进行乘法运算。

例如:以下所有操作都产生相同的值

1. '00:04:18' * 1.7 = '00:08:36'
2. '00:04:18' * 1.8 = '00:08:36'
3. '00:04:18' * 1.9 = '00:08:36'
4. '00:04:18' * 2 = '00:08:36'

请让我知道我必须做哪些更改才能在不四舍五入的情况下获得准确的值。

谢谢

【问题讨论】:

    标签: mysql database stored-procedures


    【解决方案1】:

    SEC_TO_TIME(TIME_TO_SEC('00:04:18') * 1.7) = '00:07:18.6'
    SEC_TO_TIME(TIME_TO_SEC('00:04:18') * 1.7) = '00:07:44.4'

    【讨论】:

    • 你使用的是哪个版本的 MySQL
    • 我使用存储过程,其中有两个变量,例如“DECLARE _median_time TIME;”和“DECLARE _percentage_change INT;”返回值为“RETURN SEC_TO_TIME(TIME_TO_SEC(_median_time) * _percentage_change);”这不起作用
    • 选择 SEC_TO_TIME( TIME_TO_SEC( '00:04:18' ) * 1.9) ;有效,但不在存储过程中。
    • 知道了。我不得不将 _percentage_change 的数据类型从 INT 更改为 Decimal(3, 2)。谢谢。
    • 感谢您告诉我 - 我没有正确阅读您的回复并使用 FLOAT 并想知道为什么它仍然有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 2017-09-03
    • 2010-12-15
    • 2018-05-16
    • 2011-09-12
    • 2014-09-05
    相关资源
    最近更新 更多