mariadb 插入问题“截断不正确的 DOUBLE 值”

问题描述 投票:0回答:1

我尝试在 Windows 中使用批处理文件执行以下查询来每天检查数据库,但出现错误。

select     'INSERT INTO MY_DB_RESOURCE_USAGE (REG_DT) VALUES ('''||reg_dt||''');'
from     (
select    *
        from     
         (select convert(DATE_FORMAT(now(), '%Y%m%d:%H'),char ) "reg_dt") reg_dt
) tt;  

Truncated incorrect INTEGER value: 'INSERT INTO MY_DB_RESOURCE_USAGE (REG_DT) VALUES (''
Truncated incorrect INTEGER value: '');'
Truncated incorrect DOUBLE value: 'INSERT INTO MY_DB_RESOURCE_USAGE (REG_DT) VALUES (''
Truncated incorrect DOUBLE value: '20240320:15'

有什么解决办法吗?

但是 select 语句的结果很好。 mariadb 版本是 10.0.20

enter image description here

mariadb
1个回答
0
投票

Mariadb 现在没有 || aA Concatination 变量,需要使用

CONCAT

有些东西你做得太复杂了所以我把它删除了

CREATE tABLE MY_DB_RESOURCE_USAGE (REG_DT  varchar(14))
select    CONCAT( "INSERT INTO MY_DB_RESOURCE_USAGE (REG_DT) VALUES ('", reg_dt_ , "');") into @sql
from
 
         (select convert(DATE_FORMAT(now(), '%Y%m%d:%H'),char ) as reg_dt_) reg_dt_tab

select convert(DATE_FORMAT(now(), '%Y%m%d:%H'),char ) as reg_dt
reg_dt
20240321:01
SELECT @sql
@sql
插入 MY_DB_RESOURCE_USAGE (REG_DT) 值 ('20240321:01');
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
Statement prepared
SELECT * FROM MY_DB_RESOURCE_USAGE
REG_DT
20240321:01

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.