【问题标题】:mysql numeric calculation errormysql数值计算错误
【发布时间】:2012-07-09 15:07:37
【问题描述】:

我不断收到此错误:

ERROR 1292 (22007):截断不正确的 DOUBLE 值:'81d119b1a5'

每当我在 mysql 中运行此代码时

UPDATE myTable SET myCol = GREATEST((myCol - 10,000.00),0) WHERE myId = Id;

我的表引擎是 innodb,CHARSET=utf8 和 COLLATE=utf8_unicode_ci。 myCol 的数据类型也是 NUMERIC(10,2)。

谁能解释为什么这个错误不断弹出。我的猜测是我可能必须转换为整数,但到目前为止它没有成功。

ADDEDUM:通过更改 SET SQL_MODE = '';

【问题讨论】:

  • 查询在GREATEST(myCol - 10,000.00),0) 附近有语法错误。所有括号都不在正确的位置。
  • 感谢指出,这是一个错字
  • myCol81d119b1a5 这个值吗?
  • 之前的SQL_MODE 是什么?
  • sql 模式为:STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

标签: mysql


【解决方案1】:

试试这个

  UPDATE myTable SET myCol = GREATEST((myCol - 10,000.00),0) WHERE myId = Id;

这可能会起作用,因为存在一些括号不匹配。

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多