Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

384
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda