当前位置: 首页 > 面试题库 >

错误代码1292-截断了错误的DOUBLE值-MySQL

何博涛
2023-03-14
问题内容

我不确定这是什么错误!

#1292 - Truncated incorrect DOUBLE value:

我没有双值字段或数据!

我浪费了整整一个小时试图解决这个问题!

这是我的查询

INSERT INTO call_managment_system.contact_numbers 
    (account_id, contact_number, contact_extension, main_number, created_by)
SELECT
    ac.account_id,
    REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') AS Phone,
    IFNULL(ta.ext, '') AS extention,
    '1' AS MainNumber,
    '2' AS created_by
FROM 
    cvsnumbers AS ta
    INNER JOIN accounts AS ac ON ac.company_code = ta.company_code
WHERE 
    LENGTH(REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') ) = 10

这是我要显示结果的表的show create表

CREATE TABLE `contact_numbers` (  
    `number_id` int(10) unsigned NOT NULL AUTO_INCREMENT,  
    `account_id` int(10) unsigned NOT NULL DEFAULT '0',  
    `person_id` int(11) NOT NULL DEFAULT '0',  
    `contact_number` char(15) NOT NULL,  
    `contact_extension` char(10) NOT NULL DEFAULT '',  
    `contact_type` enum('Primary','Direct','Cell','Fax','Home','Reception','Office','TollFree') NOT NULL DEFAULT 'Primary',  
    `contact_link` enum('Account','PDM','Other') NOT NULL DEFAULT 'Account',  
    `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0 = inactive, 1=active', 
    `main_number` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1 = main phone number',  
    `created_on` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,  
    `created_by` int(11) NOT NULL,  
    `modified_on` datetime DEFAULT NULL,  
    `modified_by` int(11) NOT NULL DEFAULT '0',  
    PRIMARY KEY (`number_id`),  
    KEY `account_id` (`account_id`),  
    KEY `person_id` (`person_id`)
) ENGINE=InnoDB AUTO_INCREMENT=534 DEFAULT CHARSET=utf8

问题答案:

此消息表示您正在尝试比较WHEREor ON子句中的数字和字符串。在您的查询中,唯一可能发生的地方是ON ac.company_code = ta.company_code;。确保它们具有相似的声明,或使用显式CAST将数字转换为字符串。

如果关闭strict模式,则错误应变为警告。



 类似资料:
  • 我做了一个触发器来验证两列,当其中只有一列错误时,它会正常显示消息,当两列都错误时,我会得到错误 错误代码:1292。截断不正确的INTEGER值:" 我相信是在Concat部分,我是不是错过了什么功能?

  • 问题内容: 当执行以下SQL查询时: 引发以下错误: 如何解决这个问题? 表结构: 问题答案: 您不需要关键字。这是UPDATE语句的正确语法:

  • 问题内容: 我有桌子 当我尝试运行此查询时: 错误代码:1292。第1行“ data_apertura”列的日期值错误:“ 01-05-2012” * 我要改变什么?(我试图将格式的日期从gg / mm / yyyy更改为gg-mm-yyyy,但未进行任何更改) 问题答案: 以以下格式示例插入日期,

  • 问题内容: 我试图从一个字符串做一个BigDecimal。不要问我为什么,我只需要它!这是我的代码: 这是我得到的输出? 有任何想法吗? 问题答案: 创建双精度数时,值0.3不能精确表示。您可以从不带中间双精度字的字符串创建BigDecimal,如下所示: 浮点数表示为二进制分数和指数。因此,有些数字无法准确表示。在以10为基数的数字中有一个类似的问题,例如1/3,即0.333333333 ...

  • 问题内容: 谁能通过示例JSP代码帮助我,以通过JDBC在MySql数据库中存储日期?当我尝试执行下面给出的代码时,出现以下异常: com.mysql.jdbc.MysqlDataTruncation:数据截断:不正确的datetime值:第1行的’date’列的’‘ 如何克服这个问题?以下是我的代码: 问题答案: 要将日期设置为准备好的语句,您需要更改值的类型: 现在将String date转换

  • 错误代码 宏定义 #define  RT_EOK   0   无错误   #define  RT_ERROR   1   一般错误   #define  RT_ETIMEOUT   2   超时错误   #define  RT_EFULL   3   资源已满   #define  RT_EEMPTY   4   资源已空   #define  RT_ENOMEM   5   内存不足   #de