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
附近使用正确的语法答案 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;
});
请注意,为什么将日期和时间存储在单独的列中?通常只有在有非常令人信服的理由时才应这样做。否则,只需将日期和时间一起存储在时间戳或日期时间列中即可。