繁体   English   中英

NodeJS MySQL DATE() 返回未定义

[英]NodeJS MySQL DATE() returns undefined

我试图让 Node 查询我的数据库并将结果发送到客户端,将结果放入<table>中,但时间戳从日期中删除。

我有以下 Node 查询我的数据库:

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

客户端JS:

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();

这是结果:

DATE(completed) 在表元素中显示为未定义

这是日期在数据库中的格式:

在此处输入图像描述

我还想重新格式化submitted的日期时间的时间戳,所以如果我能找到如何为这种情况正确格式化日期/时间,那将是一个很大的帮助。

(如果这很明显,我很抱歉,但我对 Node 比较陌生。我像个疯子一样用谷歌搜索但找不到解决方案,这要么意味着这是一个不常见的问题,要么我在做一些愚蠢的事情)


编辑:

  • 通过使用DATE(completed) AS completed查询来修复undefined
  • 通过在客户端使用toLocaleString()修复了日期/时间格式

您需要为SELECT列表中的列指定别名,以便将其称为responsej[i].completed 否则,您需要使用responsej[i]['DATE(completed)']

并根据需要对其进行格式化,使用DATE_FORMAT() function 而不是返回DATE

SELECT DATE_FORMAT(completed, '%Y-%m-%d') AS completed, duration, submitted FROM workentries WHERE iin = ?

暂无
暂无

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

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