[英]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();
这是结果:
这是日期在数据库中的格式:
我还想重新格式化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.