Olá, estou criando um sistema de resgate diário, onde o usuário ganha moedas e XP em um BOT para Discord, quando utilizo o comando ele pega a data porém ao registrar no banco de dados ele registra como 0000-00-00, confira o código do sistema abaixo!
if(cmd === ${Prefixo}resgatar){
if (message.channel.id !== ${CanalCMD} && ${CanalCMD} !== nenhum) return message.channel.send(Hey ${message.author.username} você só pode executar este comando no canal <#${CanalCMD}>)
var sqlrgt = `SELECT Resgates, ResgatarTimer, Moedas, XP FROM Usuarios WHERE UserID = ${message.author.id}`;
con.query(sqlrgt, function (err, result, fields) {
if (err) throw err;
var Resgates = result[0].Resgates;
var ResgatarTimer = result[0].ResgatarTimer;
var Moedas = result[0].Moedas;
var XP = result[0].XP;
console.log(`Usuário localizado com sucesso!`);
const Horario = ResgatarTimer;
const NewHorario = moment.utc(Date.now()).tz('America/Sao_Paulo').format('YYYY-MM-DD');
var NewResgate = Resgates + 1;
var NewMoedas = Moedas + 10;
var NewXP = XP + 5;
console.log(NewHorario)
if(Horario != NewHorario){
var sqlrgt1 = `UPDATE Usuarios SET Moedas = ${NewMoedas}, XP = ${NewXP}, ResgatarTimer = ${NewHorario}, Resgates = ${NewResgate} WHERE UserID = ${message.author.id}`;
con.query(sqlrgt1, function (err, result, fields) {
if (err) throw err;
console.log(`Usuário atualizado com sucesso!`);
message.channel.send(`Hey ${message.author} você resgatou seu prêmio diário com sucesso!`)
message.delete().catch();
})
}
if(Horario === NewHorario){
message.channel.send(`Hey ${message.author} você já resgatou seu prêmio diário, espere até amanhã!`)
message.delete().catch();
}
})}
Ele pega a data de quando executou o comando no const NewHorario = moment.utc(Date.now()).tz('America/Sao_Paulo').format('YYYY-MM-DD'); e salva no banco de dados no:
if(Horario != NewHorario){
var sqlrgt1 = `UPDATE Usuarios SET Moedas = ${NewMoedas}, XP = ${NewXP}, ResgatarTimer = ${NewHorario}, Resgates = ${NewResgate} WHERE UserID = ${message.author.id}`;
con.query(sqlrgt1, function (err, result, fields) {
if (err) throw err;
console.log(`Usuário atualizado com sucesso!`);
message.channel.send(`Hey ${message.author} você resgatou seu prêmio diário com sucesso!`)
message.delete().catch();
})
}
Eu dei um console.log no NewHorario e a data está certa, como é possível ver na imagem abaixo!
![]()
Porém no banco de dados é registrado “0000-00-00” como na imagem abaixo.
![]()
A coluna “ResgatarTimer” foi criado do tipo “DATE”!
Alguém poderia me ajudar, pois tenho outro bot que faz a mesma coisa e salva no Firebase, porém funciona certinho, ou seja, o código está certo, porém não sei porque não salva a data certa no banco de dados…