nodejs mysql вставить пустое поле даты и времени - PullRequest
0 голосов
/ 10 июля 2020

с использованием mysql -s sh

Как вставить значение поля DateTime в null в MySQL через nodejs?

Пробовал следующее:

connection.query('INSERT INTO idea_steps (field1, field2) VALUES(?, ?)', ['value1', null])
connection.query('INSERT INTO idea_steps (field1, field2) VALUES(?, ?)', ['value1', ''])
connection.query('INSERT INTO idea_steps (field1, field2) VALUES(?, ?)', ['value1', 'null'])
connection.query('INSERT INTO idea_steps (field1, field2) VALUES(?, ?)', ['value1', undefined])

Структура таблицы:

field1 String
field2 DateTime Default null

Ошибка:

для ''

Incorrect datetime value: \'\' for column \'field2\' at row 730

для неопределенного

Unknown column \'NaN\' in \'field list\'

для 'null '

Incorrect datetime value: \'null\' for column \'field2\' at row 730'

для null

Unknown column \'NaN\' in \'field list\'

Может ли кто-нибудь помочь мне вставить поле DateTime в null? Я не могу пропустить поле field2. Дайте мне знать, возможно ли это вообще, если нет, мне придется придумать кое-что еще.

1 Ответ

0 голосов
/ 10 июля 2020

Синтаксис connection.query здесь кажется ошибочным.

Должно быть:

const sqlQuery = "INSERT INTO idea_steps (field1, field2) VALUES ?";
const values =  [ ['field1', 'NULL'] ];

con.query(sqlQuery, [values], function (err, result) {
    if (err) throw err;
    console.log("Number of records inserted: " + result.affectedRows);
  });
...