首页 > 解决方案 > 在 Node.js 中使用日期过滤器查询失败

问题描述

我正在尝试在 node.js 中使用日期过滤器运行一个简单的查询,即使从工作台运行相同的查询我正在获取数据,但是在从 Node 运行时,没有返回任何行。

const fetchHistoricalDataQuery = 'SELECT timestamp, \
meter_id   AS meterId, \
txn_info_1 AS meterReading, \
txn_info_2 AS txnInfo2, \
txn_info_3 AS txnInfo3, \
txn_info_4 AS txnInfo4, \
txn_info_5 AS txnInfo5, \
date       date \
FROM   si_agent.historical_data \
WHERE date = ?';

jp_db.fetchHistoricalData = (date) => {
    return new Promise((resolve, reject) => {
        pool.query(fetchHistoricalDataQuery, [date], (err, results) => {
            if (err) {
                return reject(err);
            } else {
                return resolve(results);
            }
        });
    });
};

当我将输入传递为:“2020-03-21 00:00:00”时,这不会返回任何行

而在 mysql 工作台中运行相同的查询给了我预期的响应。

SELECT timestamp, 
meter_id   AS meterId, 
txn_info_1 AS meterReading, 
txn_info_2 AS txnInfo2, 
txn_info_3 AS txnInfo3, 
txn_info_4 AS txnInfo4, 
txn_info_5 AS txnInfo5, 
date       date 
FROM   si_agent.historical_data 
WHERE date = "2020-03-21 00:00:00"

关于为什么会发生这种情况的任何想法?

编辑:

我尝试发送整个 Date 对象 - 没有用。新日期(“2020-03-21 00:00:00”)

标签: mysqlnode.jsexpressdatetime

解决方案


推荐阅读