该查询未将当前日期和时间插入表格中

时间:2018-08-13 05:38:13

标签: mysql node.js

var currentDate=new Date().toLocaleString().slice(0,10);

var now = new Date().toLocaleTimeString();

if(data = true){

con.query('INSERT INTO rooms (user_id,current_date,current_time) VALUES (?,?,?)',[user_id,currentDate,now],function(error,results,fields){
                    if(error) throw error;

发生此错误: MySQL服务器版本,可在'current_date,current_time

附近使用正确的语法

2 个答案:

答案 0 :(得分:3)

current_date和current_time都是MySQL中的保留函数和关键字

您可以使用与这些名称不同的列名称,也可以使用反引号对列名称进行转义:

'INSERT INTO rooms (`user_id`,`current_date`,`current_time`) VALUES (?,?,?)'

此外,MySQL具有内置功能来获取当前日期和时间:

请参阅:CURDATE()CURTIME()和NOW()-以及日期和时间。

答案 1 :(得分:1)

我不知道导致错误的确切原因,但是MySQL的日期/时间API实际上提供了可用于访问当前日期和时间的函数。因此,以下应在这里工作:

var sql = 'INSERT INTO rooms (user_id, `current_date`, `current_time`) ';
sql += 'VALUES (?, CURRENT_DATE, CURRENT_TIME)';
con.query(sql, [user_id], function(error, results, fields) {
    if(error) throw error;
});

请注意,为什么将日期和时间存储在单独的列中?通常只有在有非常令人信服的理由时才应这样做。否则,只需将日期和时间一起存储在时间戳或日期时间列中即可。