【问题标题】:Converted to decimal does not insert转换为十进制不插入
【发布时间】:2017-07-11 12:53:47
【问题描述】:

谁能告诉我为什么这(第 3 行)不起作用?

create table myTable ( myDecimal  decimal );

select convert('', decimal(5,2)) as myValue;

insert into myTable (myDecimal) select convert('', decimal(5,2)) as myValue;

谢谢。

【问题讨论】:

  • 不是 100% 确定 MySQL,但在 MS SQL 中,如果您在创建小数列时未指定精度,则会得到 0 个小数位。
  • 什么是错误信息?你的服务器版本是多少?

标签: mysql


【解决方案1】:
create table myTable ( myDecimal  decimal );

select convert('', decimal(5,2)) as myValue;


SET SESSION SQL_MODE = '';
INSERT INTO MYTABLE (MYDECIMAL) SELECT CONVERT('', DECIMAL(5,2)) AS MYVALUE;

这是由于严格的 SQL_MODE 模式所致。

您可以通过此STRICT_SQL_MODE查看。

试试上面的查询。

【讨论】:

  • 谢谢萨加尔。您的陈述对我不起作用,但 INSERT IGNORE INTO MYTABLE (MYDECIMAL) SELECT CONVERT('', DECIMAL(5,2)) AS MYVALUE;做的伎俩!也许,我仍然很困惑为什么原来的不起作用?我先转换为十进制,所以我没有插入空白字符串。
猜你喜欢
  • 1970-01-01
  • 2018-09-04
  • 2011-07-28
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多