繁体   English   中英

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

[英]Current date and time is not inserting in table by this query

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附近使用正确的语法

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

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

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

另外,MySQL具有内置函数来获取当前日期和时间:

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

我不知道导致错误的确切原因,但是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;
});

附带说明一下,为什么将日期和时间存储在单独的列中? 通常只有在有非常令人信服的理由时才应这样做。 否则,只需将日期和时间一起存储在时间戳或datetime列中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM