Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

383
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!