【问题标题】:ER_TRUNCATED_WRONG_VALUE: Incorrect date value: '0' - NodeJS with correct DATE valueER_TRUNCATED_WRONG_VALUE:不正确的日期值:'0' - 具有正确 DATE 值的 NodeJS
【发布时间】:2020-09-13 01:31:48
【问题描述】:

我正在尝试从 nodejs 将标准 ISO 日期插入 MySQL 数据库并收到以下错误:

ER_TRUNCATED_WRONG_VALUE: Incorrect date value: '0' for column 'lastmod' at row 1

StackOverflow 上的所有其他问题似乎人们没有正确格式化他们的日期。

如果我手动运行查询,它会在一些修改后工作 - 是不是 nodejs 给了我不好的准备?还是我以某种方式错误地发送了数据?

首先创建表:

    CREATE TABLE IF NOT EXISTS urls (
        id int(6) unsigned NOT NULL AUTO_INCREMENT,
        url varchar(255) NOT NULL,
        lastmod date NOT NULL,
        updatedAt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
        createdAt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY (url),
        UNIQUE KEY id (id)
    );

然后插入条目:

const mysql = require('mysql2')
const pool = mysql.createPool(settings);

async function upsert(entries){
    // entries = [{url, lastmod}, {url, lastmod}]

    const query = `
    INSERT INTO urls (
        url, lastmod )
        VALUES (?)
        ON DUPLICATE KEY UPDATE
        url=VALUES(url), 
        lastmod=VALUES(lastmod)
    `
    let q = pool.format(query, entries)
    console.log(q); 
    let result;
    try{
        result =  await pool.query(query, entries)
    } catch ( err ){
        console.log("Error in upsert", err)
    } finally {
        return result
    }
}

从 console.log 中,插入语句将如下所示:

 INSERT INTO urls (
        url,  lastmod
        )
        VALUES (
            `url` = 'https://test.com', 
            `lastmod` = '2020-12-30'
        )
        ON DUPLICATE KEY UPDATE 
        url=VALUES(url), 
        lastmod=VALUES(lastmod),

并产生以下错误:ER_TRUNCATED_WRONG_VALUE: Incorrect date value: '0' for column 'lastmod' at row 1

有趣的是,如果我删除了

`col`='value'

从我的 VALUES 列表中,仅将其设为“值”而不是 col=“值”,我可以手动运行插入 - 为什么节点 mysql 准备这样的值?是不是我做错了什么?

谢谢!

【问题讨论】:

    标签: mysql node.js node-mysql2


    【解决方案1】:

    我发现错误是VALUES (?)应该写成VALUES ?

    不完全确定有什么区别,但是,解决了我的问题:-)

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多