首页 > 解决方案 > 如何在使用 Nodejs 将 CSV 数据上传到 mySQL 时修复 DATETIME 截断警告

问题描述

我正在获取 CSV 数据(来自使用 NPM 请求的 url),我使用 Nodejs 将其上传到 mySQL。此 CSV 数据已 created_at 列的值为“2015-10-19T04:00:00Z”。在 mySQL 中上传时,我想将此列的格式更改为“10/19/2015 4:00:00 AM”。

mySQL 表具有数据类型 DATETIME 的 created_at 列。但是,当我将“2015-10-19T04:00:00Z”上传到其中时,它会给出:- 警告消息是:消息:“第 24 行的列 \'created_at\' 的数据被截断”。如何在 NodeJS 的 mySQL 表中插入值之前更改数据格式?

var request = require('request');
var mysql = require('mysql');
var csvParser = require('csv-parse');
request(options, function (error, response, csvbody) { ...
csvParser(csvbody, { delimiter: ','}, function(err, data) { ...
con.query("INSERT INTO ?? VALUES ?", [mySQLTable, data], function(err, result) {...

标签: mysqlcsvnodes

解决方案


尝试使用以下语句代替您的语句:

con.query("INSERT INTO ?? (field_name) VALUES (timestamp(substr('?',1,14)))", [mySQLTable, data], function(err, result) {...

它应该工作。


推荐阅读