Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

392
Visualizações
NodeJS MySQL DATE () devuelve indefinido

Estoy tratando de hacer que Node consulte mi base de datos y envíe los resultados al cliente donde se coloca en una <table> , pero con la marca de tiempo eliminada de la fecha.

Tengo el siguiente bit de Node consultando mi base de datos:

 pool.query( "SELECT DATE(completed), duration, submitted FROM workentries WHERE iin = ?",[iin], function(error, results) { if(error) throw error; connection.release() res.send(results); } )

El JS del lado del cliente:

 const httpr = new XMLHttpRequest(); httpr.onload = () => { let responsej = JSON.parse(httpr.response) for(i in responsej) { document.getElementById("workentry-table").innerHTML += "<tr><td>"+responsej[i].completed+"</td><td>"+responsej[i].duration+"</td><td>"+responsej[i].submitted+"</td></tr>"; } } httpr.open('GET', '/workentry-list'); httpr.send();

Este es el resultado:

DATE (completado) aparece como indefinido en el elemento de la tabla

Así es como se formatean las fechas en la base de datos:

ingrese la descripción de la imagen aquí

También voy a querer volver a formatear la marca de tiempo en la fecha y hora submitted , por lo que sería de gran ayuda si puedo averiguar cómo formatear correctamente la fecha/hora para este caso.

(Lo siento si esto es obvio, pero soy relativamente nuevo en Node. Busqué en Google como un loco pero no pude encontrar una solución, lo que significa que este es un problema poco común o que estoy haciendo algo estúpido)


EDITAR:

  • Se undefined mediante el uso de DATE(completed) AS completed para la consulta
  • Se corrigió el formato de fecha/hora usando toLocaleString() en el lado del cliente
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debe dar un alias a la columna en la lista SELECT para que pueda referirse a ella como responsej[i].completed . De lo contrario, debe usar la responsej[i]['DATE(completed)']

Y para formatearlo como desee, use la función DATE_FORMAT() en lugar de devolver una DATE .

 SELECT DATE_FORMAT(completed, '%Y-%m-%d') AS completed, duration, submitted FROM workentries WHERE iin = ?
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda